PureYAML/Tests
Mihaela Mihaljevic b2d2d2f595 fix(parsing): accept tabs as separation, reject them as indentation
libyaml refuses to skip a tab in the inter-token whitespace whenever a
simple key is allowed, so a tab used as valid separation (after a '-',
'?', or ':' indicator, or before a flow collection) is reported as a
character that cannot start a token. But a tab is legal in-line
separation; it is only illegal as indentation.

The scanner now skips tabs in scan_to_next_token and records in
tabbedSeparation whether one preceded the pending token. A block entry,
an explicit key, or an implicit mapping key promoted by ':' is rejected
when reached through a tab (there the tab would be indentation), while a
scalar value or a flow collection is accepted. Tab-indented keys and
'-\t-' nested entries still reject.

Surpasses libyaml on 6BCT, 6CA3, A2M4, DK95/00, Q5MG, Y79Y/010.
Port score 299 -> 305.
2026-06-24 19:14:12 +02:00
..
Fixtures fix(parsing): strip trailing fold from flow plain scalars 2026-06-24 02:01:08 +02:00
ACMEZephyrFixtureTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
AnchoredIndentedNodeParsingTests.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
ArbitraryAnyDecisionTests.swift docs(api): reject arbitrary any conversion 2026-06-05 14:34:17 +02:00
CanonicalEventConformanceTests.swift fix(parsing): accept tabs as separation, reject them as indentation 2026-06-24 19:14:12 +02:00
CodableCompatibilityFixtures.swift feat(codable): broaden compatibility coverage 2026-06-05 12:49:20 +02:00
CodableCompatibilityTests.swift Add machine-readable validation reports 2026-06-05 20:39:32 +02:00
CodingTests.swift feat(coding): add unkeyed typed conversion 2026-06-05 12:23:52 +02:00
CollectionCompatibilityFixtures.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
ComplexMappingKeyCodableTests.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
ComplexMappingKeyDumperTests.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
ComplexMappingKeyParsingTests.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
ComplexMappingKeyTestSupport.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
ComplexMappingKeyValidationTests.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
DiagnosticValidationReportTests.swift feat(parsing): route the event API through the ported libyaml engine 2026-06-24 17:32:29 +02:00
DocumentationExampleTests.swift feat(emitting): dump YAML streams 2026-06-05 17:14:41 +02:00
DownstreamDocumentFixtures.swift test(compatibility): add downstream document fixtures 2026-06-05 13:45:23 +02:00
DownstreamDocumentTests.swift feat(parser): expand YAML merge keys 2026-06-05 15:12:55 +02:00
DumperEmptyCollectionTests.swift Add machine-readable validation reports 2026-06-05 20:39:32 +02:00
DumperTests.swift fix(emitting): escape CRLF per unicode scalar in double-quoted output 2026-06-23 22:23:40 +02:00
EmitterCorpusTests.swift feat(emitting): broaden literal block fixtures 2026-06-05 13:37:33 +02:00
EventStreamingParserTests.swift refactor(parsing): delete the hand-rolled parser, leaving the ported engine 2026-06-24 18:07:20 +02:00
JSONCompatibilityTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
KeyedCodingTests.swift feat(coding): add unkeyed typed conversion 2026-06-05 12:23:52 +02:00
LibYAMLCharacterClassTests.swift feat(parsing): port libyaml character-class predicates to Swift 2026-06-24 03:00:28 +02:00
LibYAMLIndentEngineTests.swift feat(parsing): begin faithful libyaml scanner port (indent engine) 2026-06-24 02:46:29 +02:00
LibYAMLParserTests.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAMLPortConformanceTests.swift fix(parsing): reject a tab where a token must start, add port differential 2026-06-24 17:12:36 +02:00
LibYAMLReaderTests.swift feat(parsing): port libyaml input reader to Swift 2026-06-24 03:04:08 +02:00
LibYAMLScannerFetchTests.swift feat(parsing): port libyaml directive scanner to Swift 2026-06-24 16:54:04 +02:00
LibYAMLSimpleKeyTests.swift feat(parsing): port libyaml simple-key mechanism to Swift 2026-06-24 02:55:07 +02:00
LiteralBlockEmissionFixtures.swift feat(emitting): broaden literal block fixtures 2026-06-05 13:37:33 +02:00
MergeKeyCompatibilityTests.swift feat(parser): expand YAML merge keys 2026-06-05 15:12:55 +02:00
ModelTests.swift feat(parsing): add reader scanner core 2026-06-05 07:40:23 +02:00
ParsingAliasTests.swift Harden parser against real YAML fixtures 2026-06-05 19:34:30 +02:00
ParsingCompatibilityTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
ParsingErrorTests.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
ParsingEventTests.swift feat(parsing): route the event API through the ported libyaml engine 2026-06-24 17:32:29 +02:00
ParsingIndentationRegressionTests.swift Add production validation reports 2026-06-05 20:23:20 +02:00
ParsingMultilineScalarTests.swift fix(parsing): parse multi-line and block scalars at the document root 2026-06-23 22:56:33 +02:00
ParsingNestingLimitTests.swift fix(parsing): bound nesting depth so pathological input errors instead of crashing 2026-06-23 09:29:45 +02:00
ParsingTests.swift Harden parser against real YAML fixtures 2026-06-05 19:34:30 +02:00
PreflightScannerTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
RealYAMLCorpusPropertyTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
RealYAMLCorpusTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
RealYAMLFixtureTests.swift Harden parser against real YAML fixtures 2026-06-05 19:34:30 +02:00
RoundTripDemonstrationTests.swift test: demonstrate yaml/json parsing and generation round-trips 2026-06-08 00:13:56 +02:00
ScalarCompatibilityFixtures.swift Add scalar compatibility corpus 2026-06-05 13:07:04 +02:00
StreamDumpingTests.swift feat(emitting): dump YAML streams 2026-06-05 17:14:41 +02:00
StreamParsingTests.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
TaggedCompatibilityTests.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
TaggedConstructorTests.swift feat(tagged): add typed constructor policy 2026-06-05 16:24:11 +02:00
TestSupport.swift Harden parser against real YAML fixtures 2026-06-05 19:34:30 +02:00
UnkeyedCodingFixtures.swift test(coding): add sequence fixtures and contract gate 2026-06-05 12:33:09 +02:00
UnkeyedCodingTests.swift Add machine-readable validation reports 2026-06-05 20:39:32 +02:00
UnkeyedEncodingFixtures.swift Add machine-readable validation reports 2026-06-05 20:39:32 +02:00
UnkeyedFailureFixtures.swift test(coding): add sequence fixtures and contract gate 2026-06-05 12:33:09 +02:00
UnsupportedYAMLGapsFixtures.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
ValidationBuiltinRuleTests.swift feat(coding): add scalar typed conversion 2026-06-05 11:45:00 +02:00
ValidationCorpusFixtures.swift feat(parser): expand YAML merge keys 2026-06-05 15:12:55 +02:00
ValidationCorpusSupport.swift test(validation): expand fixture corpus 2026-06-05 14:29:52 +02:00
ValidationCorpusTests.swift test(validation): expand fixture corpus 2026-06-05 14:29:52 +02:00
ValidationFailureFixtureTests.swift Harden parser against real YAML fixtures 2026-06-05 19:34:30 +02:00
ValidationModelTests.swift feat(coding): add scalar typed conversion 2026-06-05 11:45:00 +02:00
ValidationModeTests.swift feat(coding): add scalar typed conversion 2026-06-05 11:45:00 +02:00
ValidationReportTests.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
ValidationTests.swift feat(validation): add predicate-gated rules 2026-06-05 11:21:23 +02:00
ValidationTestSupport.swift test(validation): harden diagnostics corpus 2026-06-05 10:46:28 +02:00
YAMLTestSuiteGapsTests.swift test(conformance): track all 402 suite cases; fix 3 regressions 2026-06-24 00:16:28 +02:00