diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 603a28c..e4c04e0 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -64,6 +64,7 @@ SKIP_PATTERNS=( '^_archive/' '^Tests/Fixtures/acme/' '^Tests/Fixtures/real-yaml/' + '^Tests/Fixtures/yaml-test-suite/' # Rule files that DEFINE the prohibitions; they MUST be able to cite # the forbidden strings to document them. '/github-discipline\.md$' diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 5bdccb6..d88ec07 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -28,8 +28,8 @@ source for PureYAML. `Tests/Fixtures/yaml-test-suite/` contains input cases vendored from the official [YAML test suite](https://github.com/yaml/yaml-test-suite) (`data` branch, commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`), which is distributed under the MIT -license. Only the cases PureYAML does not yet handle correctly are vendored, each as -its input (`in.yaml`), expected JSON projection (`in.json`), and expected-error -marker (`error`). `Tests/Fixtures/yaml-test-suite-gaps.yaml` records the provenance -and each case's current behavior. These files are test data, not implementation +license. All 402 cases (numbered sub-cases counted) are vendored, each as its input +(`in.yaml`), expected JSON projection (`in.json`), and/or expected-error marker +(`error`). `Tests/Fixtures/yaml-test-suite-manifest.yaml` records the provenance and +each case's conformance status. These files are test data, not implementation source. diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d33963..8b77009 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Make the YAML test suite conformance gate comprehensive and repair the + regressions it revealed. The gap-only manifest (which deleted a case once fixed, + so nothing guarded it afterward and later work could silently regress it) is + replaced by a full manifest of all 402 official cases + (`Tests/Fixtures/yaml-test-suite-manifest.yaml`), each with its `id`, `name`, + `localPath`, conformant `expected` behavior, `oracle`, `byteCount`, `lineCount`, + and a `status` (`passing` | `gap`). Every case's files are vendored under + `Tests/Fixtures/yaml-test-suite/`. The gated sweep + (`PUREYAML_RUN_YAML_TEST_SUITE=1`) now asserts every `passing` case still passes + and every `gap` still reproduces, so a regression in any passing case fails the + sweep. Result at the pinned commit: **329 of 402 passing, 73 gap.** +- Stop over-rejecting tabs. A tab is invalid only as block-structure indentation + (`scanner.c` `scan_to_next_token` / `scan_block_scalar_breaks` / + `scan_plain_scalar`). Block indentation is now measured in spaces only; a tab is + left for the token scanner, which allows it inside block-scalar content once a + leading space fixes the content column (96NN/00, 96NN/01, R4YG, Y79Y/001), as + separation before a scalar value (DK95/00) or a flow node (6CA3, Q5MG, J3BT), and + on a whitespace-only blank line (DK95/03, DK95/07), while still rejecting genuine + tab indentation (4EJS, Y79Y/000, Y79Y/004-008, DK95/06). The batch scanner and the + incremental token cursor were unified onto a single `scanStep`, since their + divergence previously let the streaming parser miss a tab error the batch scanner + caught. +- Restore anchors/aliases as mapping keys for `26DV`: an anchor on a `key:` value + line followed by an indented `*alias :` key now anchors the nested mapping rather + than the alias key (which cannot carry properties); `&b *alias` on one line is + still rejected (SU74). +- Restore flow bare-tag/anchor keys for `WZ62` (`{ foo : !!str, !!str : bar, }` to + `{"foo":"", "":"bar"}`): a flow key introduced by a spliced `mappingKey` uses the + same key parser as the implicit form, so a bare tag before the `:` composes an + empty tagged scalar key instead of a mapping-as-key. - Complete flow-collection (`[...]`, `{...}`) parsing for keys, empty nodes, and multi-line scalars, fixing 10 official YAML test suite cases and removing them from the conformance gap manifest. The scanner now implements libyaml's diff --git a/Sources/Parsing/Scanner.BlockScalar.swift b/Sources/Parsing/Scanner.BlockScalar.swift index 79819b1..3d932fd 100644 --- a/Sources/Parsing/Scanner.BlockScalar.swift +++ b/Sources/Parsing/Scanner.BlockScalar.swift @@ -164,14 +164,7 @@ extension PureYAML.Parsing.Scanner { } state.reader.advance() } - // A tab where a block-scalar indentation space is expected is rejected, - // matching scanner.c:2993-2997 ("found a tab character where an - // indentation space is expected"). The tab only abuses indentation when - // it sits below the block's indent column (or while indent is still - // being auto-detected). - if state.reader.peek() == "\t", indent == 0 || blockScalarColumn(state) < indent { - throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) - } + try rejectBlockScalarIndentationTab(indent: indent, state: state) if blockScalarColumn(state) > maxIndent { maxIndent = blockScalarColumn(state) } @@ -193,6 +186,25 @@ extension PureYAML.Parsing.Scanner { } } + /// Rejects a tab where a block-scalar indentation space is expected, matching + /// scanner.c:2993-2997 ("found a tab character where an indentation space is + /// expected"). The tab abuses indentation only when it would itself supply the + /// block's indent: with a fixed indent, that is any tab below the content column; + /// while auto-detecting (`indent == 0`), a tab at column 0 (no space established a + /// content column) is illegal, but a tab after one or more leading spaces is the + /// first content character of an indented line, so the spaces fix the indent and + /// the tab is preserved as content. + private func rejectBlockScalarIndentationTab(indent: Int, state: State) throws { + guard state.reader.peek() == "\t" else { + return + } + let column = blockScalarColumn(state) + let abusesIndentation = indent > 0 ? column < indent : column == 0 + if abusesIndentation { + throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) + } + } + /// Reads a single line break, normalizing CR and CRLF to a single `\n`. private func readBlockScalarLineBreak(_ state: inout State) -> String { guard isLineBreak(state.reader.peek()) else { diff --git a/Sources/Parsing/Scanner.Indentation.swift b/Sources/Parsing/Scanner.Indentation.swift index 3e6c618..bd289b8 100644 --- a/Sources/Parsing/Scanner.Indentation.swift +++ b/Sources/Parsing/Scanner.Indentation.swift @@ -27,31 +27,21 @@ extension PureYAML.Parsing.Scanner { func scanIndentationWidth(_ state: inout State) throws -> Int { var width = 0 - while let character = state.reader.peek() { - if character == " " { - width += 1 - state.reader.advance() - } else if character == "\t" { - // A tab may not provide block indentation. At the start of a block - // line a simple key is allowed, so libyaml does not consume the tab - // as whitespace and the line is malformed (scanner.c:1948-1953). A - // tab is only legal here once it follows content on the same line. - if state.flowDepth == 0, state.simpleKeyAllowed { - throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) - } - width = nextTabStop(after: width) - state.reader.advance() - } else { - return width - } + while state.reader.peek() == " " { + width += 1 + state.reader.advance() } + // Block indentation (s-indent) is spaces only: a tab is never indentation + // (scanner.c's scan_to_next_token eats only spaces unconditionally). The tab + // is left under the reader so the token scanner can decide whether it is legal + // in-line separation (before a scalar value or flow node) or an illegal tab + // that supplies the indentation of a nested block node; `rejectTabSeparation` + // and the blank-line handling in `scan` make that call. A whitespace-only line + // (spaces and/or tabs followed by a break) is a blank line and carries no + // indentation token. return width } - func nextTabStop(after width: Int) -> Int { - ((width / 4) + 1) * 4 - } - func shouldProcessIndentation(_ state: State) -> Bool { guard !state.reader.isAtEnd, !isLineBreak(state.reader.peek()) else { return false diff --git a/Sources/Parsing/Scanner.Step.swift b/Sources/Parsing/Scanner.Step.swift new file mode 100644 index 0000000..4f8812c --- /dev/null +++ b/Sources/Parsing/Scanner.Step.swift @@ -0,0 +1,85 @@ +extension PureYAML.Parsing.Scanner { + /// Result of one scanning iteration over the source. Both the batch ``scan`` + /// loop and the incremental ``PureYAML/Parsing/TokenCursor`` driver share the + /// same step so the two paths cannot diverge (a divergence is what once let a + /// tab-indentation error slip past the streaming parser while the batch scanner + /// caught it). + enum Step { + /// Nothing remains; the caller appends stream end and stops. + case endOfInput + /// A line break, blank line, or comment was consumed; restart the loop. + case advanced + /// A directive or document marker was scanned; restart the loop. + case scannedMarker + /// An ordinary token was scanned. + case scannedToken + } + + /// Performs one scanning iteration: consumes a leading line break or blank line, + /// scans indentation at a line start, then scans either a directive / document + /// marker or one ordinary token. Resets `simpleKeyAllowed` at every block-context + /// line break so a tab at the next line start is recognized as (illegal) + /// indentation rather than (legal) in-line separation. + func scanStep(_ state: inout State) throws -> Step { + if state.reader.isAtEnd { + return .endOfInput + } + if isLineBreak(state.reader.peek()) { + state.reader.advance() + state.isAtLineStart = true + if state.flowDepth == 0 { + state.simpleKeyAllowed = true + } + return .advanced + } + + if state.isAtLineStart { + // A line whose entire content is blanks (spaces and/or tabs) before the + // break is a blank line: it carries no indentation and no token, matching + // scanner.c's scan_to_next_token, which eats the blanks and the break + // before any indent processing. Consuming it here keeps a whitespace-only + // line (e.g. `· \t`) from emitting a spurious indent token or being + // mis-scanned as content. + if consumeBlankLineRemainder(&state) { + return .advanced + } + try scanIndentation(&state) + if state.reader.isAtEnd || isLineBreak(state.reader.peek()) { + return .advanced + } + if try scanDirectiveOrDocumentMarker(&state) { + return .scannedMarker + } + state.isAtLineStart = false + } + + try scanToken(&state) + return .scannedToken + } + + /// When the reader sits on a run of blanks (spaces and/or tabs) that ends the + /// line (a line break or end of input follows), consumes that run plus the line + /// break and reports true: the line was blank. Otherwise leaves the reader where + /// it was and reports false. Used so a whitespace-only line (e.g. `· \t`) is + /// skipped rather than mis-scanned as plain-scalar content. + func consumeBlankLineRemainder(_ state: inout State) -> Bool { + var offset = 0 + while let character = state.reader.peek(offset: offset), character == " " || character == "\t" { + offset += 1 + } + let next = state.reader.peek(offset: offset) + guard next == nil || isLineBreak(next) else { + return false + } + for _ in 0 ..< offset { + state.reader.advance() + } + if isLineBreak(state.reader.peek()) { + state.reader.advance() + if state.flowDepth == 0 { + state.simpleKeyAllowed = true + } + } + return true + } +} diff --git a/Sources/Parsing/Scanner.swift b/Sources/Parsing/Scanner.swift index adba375..65d8cd4 100644 --- a/Sources/Parsing/Scanner.swift +++ b/Sources/Parsing/Scanner.swift @@ -6,31 +6,13 @@ extension PureYAML.Parsing { var state = State(reader: Reader(yaml)) state.append(.streamStart) - while !state.reader.isAtEnd { - if isLineBreak(state.reader.peek()) { - state.reader.advance() - state.isAtLineStart = true - if state.flowDepth == 0 { - state.simpleKeyAllowed = true - } + loop: while !state.reader.isAtEnd { + switch try scanStep(&state) { + case .endOfInput: + break loop + case .advanced, .scannedMarker, .scannedToken: continue } - - if state.isAtLineStart { - try scanIndentation(&state) - if state.reader.isAtEnd { - break - } - if isLineBreak(state.reader.peek()) { - continue - } - if try scanDirectiveOrDocumentMarker(&state) { - continue - } - state.isAtLineStart = false - } - - try scanToken(&state) } if state.hasPendingDirective { @@ -132,8 +114,9 @@ extension PureYAML.Parsing.Scanner { extension PureYAML.Parsing.Scanner { func scanToken(_ state: inout State) throws { - skipSeparation(&state) + skipSpaceSeparation(&state) try rejectTabSeparation(&state) + skipSeparation(&state) guard let character = state.reader.peek(), !isLineBreak(character) else { return } @@ -249,12 +232,22 @@ extension PureYAML.Parsing.Scanner { } } - func skipSeparation(_ state: inout State) { + func skipSpaceSeparation(_ state: inout State) { while state.reader.peek() == " " { state.reader.advance() } } + func skipSeparation(_ state: inout State) { + // In-line separation (s-white) is spaces and tabs. `rejectTabSeparation` has + // already rejected any tab that would supply the indentation of a nested block + // node, so a tab still under the reader here is ordinary separation before a + // scalar value or flow node and is consumed like a space (scanner.c IS_BLANK). + while let character = state.reader.peek(), character == " " || character == "\t" { + state.reader.advance() + } + } + func scanFixedToken( _ kind: PureYAML.Parsing.TokenKind, state: inout State, diff --git a/Sources/Parsing/TokenCursor.swift b/Sources/Parsing/TokenCursor.swift index 6e8cb5f..62f632e 100644 --- a/Sources/Parsing/TokenCursor.swift +++ b/Sources/Parsing/TokenCursor.swift @@ -83,7 +83,7 @@ extension PureYAML.Parsing { // flow collection's tokens must stay in `state.tokens` until it closes // for the retroactive index to remain valid. while scannerBox.state.tokens.isEmpty || scannerBox.state.flowDepth > 0 { - guard !scannerBox.state.reader.isAtEnd else { + if scannerBox.state.reader.isAtEnd { if scannerBox.state.hasPendingDirective { throw PureYAML.Parsing.ParseError.directiveWithoutDocument( line: scannerBox.state.reader.mark.line, @@ -96,30 +96,13 @@ extension PureYAML.Parsing { return } - if scanner.isLineBreak(scannerBox.state.reader.peek()) { - scannerBox.state.reader.advance() - scannerBox.state.isAtLineStart = true - continue + // Drive the same scanning step the batch scanner uses, so the two + // paths share one source of truth for line breaks, blank lines, + // indentation, and `simpleKeyAllowed` handling. + let step = try scanner.scanStep(&scannerBox.state) + if case .scannedMarker = step, !scannerBox.state.tokens.isEmpty { + break } - - if scannerBox.state.isAtLineStart { - try scanner.scanIndentation(&scannerBox.state) - if scannerBox.state.reader.isAtEnd { - continue - } - if scanner.isLineBreak(scannerBox.state.reader.peek()) { - continue - } - if try scanner.scanDirectiveOrDocumentMarker(&scannerBox.state) { - if !scannerBox.state.tokens.isEmpty { - break - } - continue - } - scannerBox.state.isAtLineStart = false - } - - try scanner.scanToken(&scannerBox.state) } drainScannedTokens(from: &scannerBox.state) diff --git a/Sources/Parsing/TokenEventParser.Flow.swift b/Sources/Parsing/TokenEventParser.Flow.swift index ad60110..7cb237b 100644 --- a/Sources/Parsing/TokenEventParser.Flow.swift +++ b/Sources/Parsing/TokenEventParser.Flow.swift @@ -129,7 +129,14 @@ extension PureYAML.Parsing.TokenEventParser { if flowKeyIsEmpty() { try emitEmptyScalar(properties: .none, mark: keyIndicator.endMark) } else { - _ = try parseNode() + // The key of a flow pair follows the same rules whether the pair was + // introduced by an explicit `?` or had a `mappingKey` spliced in by the + // simple-key mechanism: a bare tag/anchor before the `:` composes an empty + // tagged scalar key (`{ !!str : bar }`), and an alias before the `:` is the + // key itself. Routing through `parseNode` would instead treat the tag/`:` + // as a nested block mapping, so use the flow key parser shared with the + // implicit form. + try parseFlowMappingImplicitKey() } return try parseFlowMappingValue() } diff --git a/Sources/Parsing/TokenEventParser.swift b/Sources/Parsing/TokenEventParser.swift index e5382b6..8d09f14 100644 --- a/Sources/Parsing/TokenEventParser.swift +++ b/Sources/Parsing/TokenEventParser.swift @@ -259,11 +259,18 @@ extension PureYAML.Parsing.TokenEventParser { // An alias is a complete reference to an already-anchored node and cannot // itself carry an anchor or tag. libyaml handles ALIAS as the first branch // of yaml_parser_parse_node (parser.c:563-570), so the property branches - // are unreachable for an alias; mirror that by rejecting `&b *alias`. - if properties.anchor != nil || properties.tag != nil { + // are unreachable for an alias; mirror that by rejecting `&b *alias`. The + // rejection applies only when the property sits on the *same line* as the + // alias: a property scanned on the previous line (e.g. `key: &anchor` then an + // indented `*alias : value`) anchors the enclosing mapping, not the alias key. + let hasProperties = properties.anchor != nil || properties.tag != nil + if hasProperties, properties.mark?.line == token.mark.line { let mark = properties.mark ?? token.mark throw PureYAML.Parsing.ParseError.expectedNode(line: mark.line, column: mark.column) } + // An alias immediately followed by a `:` is the first key of a block mapping; + // any property that reached here belongs to the mapping (it was on a prior + // line, per the check above), so route into the mapping carrying it. if try cursor.peek()?.kind.isMappingValue == true { return try parseBlockMapping( properties: properties, diff --git a/Tests/Fixtures/yaml-test-suite-gaps.yaml b/Tests/Fixtures/yaml-test-suite-gaps.yaml deleted file mode 100644 index 492a6ad..0000000 --- a/Tests/Fixtures/yaml-test-suite-gaps.yaml +++ /dev/null @@ -1,498 +0,0 @@ -version: 1 -description: PureYAML conformance gaps vs the official YAML test suite -source: - repository: yaml/yaml-test-suite - branch: data - commit: 6ad3d2c62885d82fc349026c136ef560838fdf3d - license: MIT -# Each entry is a case PureYAML does NOT yet handle correctly. -# category: false-reject | json-mismatch | accepted-invalid -# expected: what a conformant parser must do (parse-ok | reject) -# current: PureYAML's present behavior (parse-error | value-mismatch | accepted) -cases: - - id: "2G84/00" - name: "Literal modifers" - localPath: yaml-test-suite/2G84/00/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 7 - lineCount: 1 - - id: "2G84/01" - name: "Literal modifers" - localPath: yaml-test-suite/2G84/01/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 8 - lineCount: 1 - - id: "2SXE" - name: "Anchors With Colon in Name" - localPath: yaml-test-suite/2SXE/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 29 - lineCount: 3 - - id: "3HFZ" - name: "Invalid content after document end marker" - localPath: yaml-test-suite/3HFZ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 27 - lineCount: 3 - - id: "4JVG" - name: "Scalar value with two anchors" - localPath: yaml-test-suite/4JVG/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 54 - lineCount: 4 - - id: "55WF" - name: "Invalid escape in double quoted string" - localPath: yaml-test-suite/55WF/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 9 - lineCount: 2 - - id: "57H4" - name: "Spec Example 8.22. Block Collection Nodes" - localPath: yaml-test-suite/57H4/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 67 - lineCount: 6 - - id: "5U3A" - name: "Sequence on same Line as Mapping Key" - localPath: yaml-test-suite/5U3A/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 2 - - id: "62EZ" - name: "Invalid block mapping key on same line as previous key" - localPath: yaml-test-suite/62EZ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 2 - - id: "6BFJ" - name: "Mapping, key and flow sequence item anchors" - localPath: yaml-test-suite/6BFJ/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 43 - lineCount: 3 - - id: "7LBH" - name: "Multiline double quoted implicit keys" - localPath: yaml-test-suite/7LBH/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 3 - - id: "7ZZ5" - name: "Empty flow collections" - localPath: yaml-test-suite/7ZZ5/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 58 - lineCount: 6 - - id: "8XDJ" - name: "Comment in plain multiline value" - localPath: yaml-test-suite/8XDJ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 26 - lineCount: 3 - - id: "9C9N" - name: "Wrong indented flow sequence" - localPath: yaml-test-suite/9C9N/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 4 - - id: "9JBA" - name: "Invalid comment after end of flow sequence" - localPath: yaml-test-suite/9JBA/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 2 - - id: "9MAG" - name: "Flow sequence with invalid comma at the beginning" - localPath: yaml-test-suite/9MAG/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 2 - - id: "BF9H" - name: "Trailing comment in multiline plain scalar" - localPath: yaml-test-suite/BF9H/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 47 - lineCount: 4 - - id: "CTN5" - name: "Flow sequence with invalid extra comma" - localPath: yaml-test-suite/CTN5/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 19 - lineCount: 2 - - id: "CVW2" - name: "Invalid comment after comma" - localPath: yaml-test-suite/CVW2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 3 - - id: "CXX2" - name: "Mapping with anchor on document start line" - localPath: yaml-test-suite/CXX2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 17 - lineCount: 1 - - id: "D49Q" - name: "Multiline single quoted implicit keys" - localPath: yaml-test-suite/D49Q/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 3 - - id: "DC7X" - name: "Various trailing tabs" - localPath: yaml-test-suite/DC7X/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 26 - lineCount: 4 - - id: "DK95/01" - name: "Tabs that look like indentation" - localPath: yaml-test-suite/DK95/01/in.yaml - category: accepted-invalid - expected: reject - oracle: json - current: accepted - byteCount: 16 - lineCount: 2 - - id: "FH7J" - name: "Tags on Empty Scalars" - localPath: yaml-test-suite/FH7J/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 51 - lineCount: 5 - - id: "G5U8" - name: "Plain dashes in flow sequence" - localPath: yaml-test-suite/G5U8/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 13 - lineCount: 2 - - id: "H7J7" - name: "Node anchor not indented" - localPath: yaml-test-suite/H7J7/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 21 - lineCount: 3 - - id: "HRE5" - name: "Double quoted scalar with escaped single quote" - localPath: yaml-test-suite/HRE5/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 31 - lineCount: 2 - - id: "HU3P" - name: "Invalid Mapping in plain scalar" - localPath: yaml-test-suite/HU3P/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 29 - lineCount: 3 - - id: "J3BT" - name: "Spec Example 5.12. Tabs and Spaces" - localPath: yaml-test-suite/J3BT/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 96 - lineCount: 6 - - id: "JEF9/02" - name: "Trailing whitespace in streams" - localPath: yaml-test-suite/JEF9/02/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 8 - lineCount: 1 - - id: "JKF3" - name: "Multiline unidented double quoted block key" - localPath: yaml-test-suite/JKF3/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 17 - lineCount: 2 - - id: "JY7Z" - name: "Trailing content that looks like a mapping" - localPath: yaml-test-suite/JY7Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 66 - lineCount: 3 - - id: "LX3P" - name: "Implicit Flow Mapping Key on one line" - localPath: yaml-test-suite/LX3P/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 14 - lineCount: 1 - - id: "M5C3" - name: "Spec Example 8.21. Block Scalar Nodes" - localPath: yaml-test-suite/M5C3/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 48 - lineCount: 6 - - id: "M7A3" - name: "Spec Example 9.3. Bare Documents" - localPath: yaml-test-suite/M7A3/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 74 - lineCount: 7 - - id: "NB6Z" - name: "Multiline plain value with tabs on empty lines" - localPath: yaml-test-suite/NB6Z/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 31 - lineCount: 5 - - id: "P2EQ" - name: "Invalid sequene item on same line as previous item" - localPath: yaml-test-suite/P2EQ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 24 - lineCount: 2 - - id: "Q9WF" - name: "Spec Example 6.12. Separation Spaces" - localPath: yaml-test-suite/Q9WF/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 97 - lineCount: 6 - - id: "QB6E" - name: "Wrong indented multiline quoted scalar" - localPath: yaml-test-suite/QB6E/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 4 - - id: "QLJ7" - name: "Tag shorthand used in documents but only defined in the first" - localPath: yaml-test-suite/QLJ7/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 93 - lineCount: 7 - - id: "S4JQ" - name: "Spec Example 6.28. Non-Specific Tags" - localPath: yaml-test-suite/S4JQ/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 55 - lineCount: 4 - - id: "S98Z" - name: "Block scalar with more spaces than first content line" - localPath: yaml-test-suite/S98Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 42 - lineCount: 5 - - id: "SKE5" - name: "Anchor before zero indented sequence" - localPath: yaml-test-suite/SKE5/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 26 - lineCount: 5 - - id: "SU5Z" - name: "Comment without whitespace after doublequoted scalar" - localPath: yaml-test-suite/SU5Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 30 - lineCount: 1 - - id: "SY6V" - name: "Anchor before sequence entry on same line" - localPath: yaml-test-suite/SY6V/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 1 - - id: "UKK6/00" - name: "Syntax character edge cases" - localPath: yaml-test-suite/UKK6/00/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 4 - lineCount: 1 - - id: "UV7Q" - name: "Legal tab after indentation" - localPath: yaml-test-suite/UV7Q/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 13 - lineCount: 3 - - id: "V9D5" - name: "Spec Example 8.19. Compact Block Mappings" - localPath: yaml-test-suite/V9D5/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 46 - lineCount: 3 - - id: "VJP3/00" - name: "Flow collections over many lines" - localPath: yaml-test-suite/VJP3/00/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 13 - lineCount: 5 - - id: "X4QW" - name: "Comment without whitespace after block scalar indicator" - localPath: yaml-test-suite/X4QW/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 27 - lineCount: 2 - - id: "Y79Y/003" - name: "Tabs in various contexts" - localPath: yaml-test-suite/Y79Y/003/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 4 - - id: "YJV2" - name: "Dash in flow sequence" - localPath: yaml-test-suite/YJV2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 4 - lineCount: 1 - - id: "ZCZ6" - name: "Invalid mapping in plain single line value" - localPath: yaml-test-suite/ZCZ6/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 11 - lineCount: 1 - - id: "ZL4Z" - name: "Invalid nested mapping" - localPath: yaml-test-suite/ZL4Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 14 - lineCount: 2 diff --git a/Tests/Fixtures/yaml-test-suite-manifest.yaml b/Tests/Fixtures/yaml-test-suite-manifest.yaml new file mode 100644 index 0000000..b78eea3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite-manifest.yaml @@ -0,0 +1,3231 @@ +version: 2 +description: PureYAML conformance status vs the official YAML test suite +source: + repository: yaml/yaml-test-suite + branch: data + commit: 6ad3d2c62885d82fc349026c136ef560838fdf3d + license: MIT +# Full manifest of all official suite cases (numbered sub-cases counted). +# expected: what a conformant parser must do (parse-ok | reject) +# oracle: json if in.json present, else none +# status: passing (PureYAML conformant today) | gap (not yet conformant) +total: 402 +passing: 329 +gap: 73 +cases: + - id: "229Q" + name: "Spec Example 2.4. Sequence of Mappings" + localPath: yaml-test-suite/229Q/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 94 + lineCount: 8 + - id: "236B" + name: "Invalid value after mapping" + localPath: yaml-test-suite/236B/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 19 + lineCount: 3 + - id: "26DV" + name: "Whitespace around colon in mappings" + localPath: yaml-test-suite/26DV/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 193 + lineCount: 12 + - id: "27NA" + name: "Spec Example 5.9. Directive Indicator" + localPath: yaml-test-suite/27NA/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 2 + - id: "2AUY" + name: "Tags in Block Sequence" + localPath: yaml-test-suite/2AUY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 33 + lineCount: 4 + - id: "2CMS" + name: "Invalid mapping in plain multiline" + localPath: yaml-test-suite/2CMS/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 3 + - id: "2EBW" + name: "Allowed characters in keys" + localPath: yaml-test-suite/2EBW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 127 + lineCount: 5 + - id: "2G84/00" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/00/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 7 + lineCount: 1 + - id: "2G84/01" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/01/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 8 + lineCount: 1 + - id: "2G84/02" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 0 + - id: "2G84/03" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 0 + - id: "2JQS" + name: "Block Mapping with Missing Keys" + localPath: yaml-test-suite/2JQS/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 2 + - id: "2LFX" + name: "Spec Example 6.13. Reserved Directives [1.3]" + localPath: yaml-test-suite/2LFX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 76 + lineCount: 4 + - id: "2SXE" + name: "Anchors With Colon in Name" + localPath: yaml-test-suite/2SXE/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 29 + lineCount: 3 + - id: "2XXW" + name: "Spec Example 2.25. Unordered Sets" + localPath: yaml-test-suite/2XXW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 137 + lineCount: 7 + - id: "33X3" + name: "Three explicit integers in a block sequence" + localPath: yaml-test-suite/33X3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 4 + - id: "35KP" + name: "Tags for Root Objects" + localPath: yaml-test-suite/35KP/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 8 + - id: "36F6" + name: "Multiline plain scalar with empty line" + localPath: yaml-test-suite/36F6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "3ALJ" + name: "Block Sequence in Block Sequence" + localPath: yaml-test-suite/3ALJ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 3 + - id: "3GZX" + name: "Spec Example 7.1. Alias Nodes" + localPath: yaml-test-suite/3GZX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 108 + lineCount: 4 + - id: "3HFZ" + name: "Invalid content after document end marker" + localPath: yaml-test-suite/3HFZ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 27 + lineCount: 3 + - id: "3MYT" + name: "Plain Scalar looking like key, comment, anchor and tag" + localPath: yaml-test-suite/3MYT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 3 + - id: "3R3P" + name: "Single block sequence with anchor" + localPath: yaml-test-suite/3R3P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "3RLN/00" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "3RLN/01" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "3RLN/02" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 2 + - id: "3RLN/03" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "3RLN/04" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "3RLN/05" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "3UYS" + name: "Escaped slash in double quotes" + localPath: yaml-test-suite/3UYS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 1 + - id: "4ABK" + name: "Flow Mapping Separate Values" + localPath: yaml-test-suite/4ABK/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 59 + lineCount: 5 + - id: "4CQQ" + name: "Spec Example 2.18. Multi-line Flow Scalars" + localPath: yaml-test-suite/4CQQ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 93 + lineCount: 6 + - id: "4EJS" + name: "Invalid tabs as indendation in a mapping" + localPath: yaml-test-suite/4EJS/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 4 + - id: "4FJ6" + name: "Nested implicit complex keys" + localPath: yaml-test-suite/4FJ6/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 37 + lineCount: 4 + - id: "4GC6" + name: "Spec Example 7.7. Single Quoted Characters" + localPath: yaml-test-suite/4GC6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 1 + - id: "4H7K" + name: "Flow sequence with invalid extra closing bracket" + localPath: yaml-test-suite/4H7K/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "4HVU" + name: "Wrong indendation in Sequence" + localPath: yaml-test-suite/4HVU/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 36 + lineCount: 4 + - id: "4JVG" + name: "Scalar value with two anchors" + localPath: yaml-test-suite/4JVG/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 54 + lineCount: 4 + - id: "4MUZ/00" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "4MUZ/01" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "4MUZ/02" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/02/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 12 + lineCount: 2 + - id: "4Q9F" + name: "Folded Block Scalar [1.3]" + localPath: yaml-test-suite/4Q9F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 8 + - id: "4QFQ" + name: "Spec Example 8.2. Block Indentation Indicator [1.3]" + localPath: yaml-test-suite/4QFQ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 66 + lineCount: 10 + - id: "4RWC" + name: "Trailing spaces after flow collection" + localPath: yaml-test-suite/4RWC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "4UYU" + name: "Colon in Double Quoted String" + localPath: yaml-test-suite/4UYU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 1 + - id: "4V8U" + name: "Plain scalar with backslashes" + localPath: yaml-test-suite/4V8U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 33 + lineCount: 2 + - id: "4WA9" + name: "Literal scalars" + localPath: yaml-test-suite/4WA9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 4 + - id: "4ZYM" + name: "Spec Example 6.4. Line Prefixes" + localPath: yaml-test-suite/4ZYM/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 7 + - id: "52DL" + name: "Explicit Non-Specific Tag [1.3]" + localPath: yaml-test-suite/52DL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 8 + lineCount: 2 + - id: "54T7" + name: "Flow Mapping" + localPath: yaml-test-suite/54T7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 1 + - id: "55WF" + name: "Invalid escape in double quoted string" + localPath: yaml-test-suite/55WF/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 9 + lineCount: 2 + - id: "565N" + name: "Construct Binary" + localPath: yaml-test-suite/565N/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 636 + lineCount: 12 + - id: "57H4" + name: "Spec Example 8.22. Block Collection Nodes" + localPath: yaml-test-suite/57H4/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 67 + lineCount: 6 + - id: "58MP" + name: "Flow mapping edge cases" + localPath: yaml-test-suite/58MP/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 8 + lineCount: 1 + - id: "5BVJ" + name: "Spec Example 5.7. Block Scalar Indicators" + localPath: yaml-test-suite/5BVJ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 49 + lineCount: 6 + - id: "5C5M" + name: "Spec Example 7.15. Flow Mappings" + localPath: yaml-test-suite/5C5M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 60 + lineCount: 2 + - id: "5GBF" + name: "Spec Example 6.5. Empty Lines" + localPath: yaml-test-suite/5GBF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 83 + lineCount: 8 + - id: "5KJE" + name: "Spec Example 7.13. Flow Sequence" + localPath: yaml-test-suite/5KJE/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 2 + - id: "5LLU" + name: "Block scalar with wrong indented line after spaces only" + localPath: yaml-test-suite/5LLU/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 34 + lineCount: 5 + - id: "5MUD" + name: "Colon and adjacent value on next line" + localPath: yaml-test-suite/5MUD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "5NYZ" + name: "Spec Example 6.9. Separated Comment" + localPath: yaml-test-suite/5NYZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 2 + - id: "5T43" + name: "Colon at the beginning of adjacent flow scalar" + localPath: yaml-test-suite/5T43/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 37 + lineCount: 2 + - id: "5TRB" + name: "Invalid document-start marker in doublequoted tring" + localPath: yaml-test-suite/5TRB/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 12 + lineCount: 4 + - id: "5TYM" + name: "Spec Example 6.21. Local Tag Prefix" + localPath: yaml-test-suite/5TYM/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 101 + lineCount: 7 + - id: "5U3A" + name: "Sequence on same Line as Mapping Key" + localPath: yaml-test-suite/5U3A/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 2 + - id: "5WE3" + name: "Spec Example 8.17. Explicit Block Mapping Entries" + localPath: yaml-test-suite/5WE3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 94 + lineCount: 5 + - id: "62EZ" + name: "Invalid block mapping key on same line as previous key" + localPath: yaml-test-suite/62EZ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 2 + - id: "652Z" + name: "Question mark at start of flow key" + localPath: yaml-test-suite/652Z/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 23 + lineCount: 3 + - id: "65WH" + name: "Single Entry Block Sequence" + localPath: yaml-test-suite/65WH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 6 + lineCount: 1 + - id: "6BCT" + name: "Spec Example 6.3. Separation Spaces" + localPath: yaml-test-suite/6BCT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 3 + - id: "6BFJ" + name: "Mapping, key and flow sequence item anchors" + localPath: yaml-test-suite/6BFJ/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 43 + lineCount: 3 + - id: "6CA3" + name: "Tab indented top flow" + localPath: yaml-test-suite/6CA3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 6 + lineCount: 2 + - id: "6CK3" + name: "Spec Example 6.26. Tag Shorthands" + localPath: yaml-test-suite/6CK3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 5 + - id: "6FWR" + name: "Block Scalar Keep" + localPath: yaml-test-suite/6FWR/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "6H3V" + name: "Backslashes in singlequotes" + localPath: yaml-test-suite/6H3V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 1 + - id: "6HB6" + name: "Spec Example 6.1. Indentation Spaces" + localPath: yaml-test-suite/6HB6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 301 + lineCount: 12 + - id: "6JQW" + name: "Spec Example 2.13. In literals, newlines are preserved" + localPath: yaml-test-suite/6JQW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 4 + - id: "6JTT" + name: "Flow sequence without closing bracket" + localPath: yaml-test-suite/6JTT/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "6JWB" + name: "Tags for Block Objects" + localPath: yaml-test-suite/6JWB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 4 + - id: "6KGN" + name: "Anchor for empty node" + localPath: yaml-test-suite/6KGN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 3 + - id: "6LVF" + name: "Spec Example 6.13. Reserved Directives" + localPath: yaml-test-suite/6LVF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 76 + lineCount: 3 + - id: "6M2F" + name: "Aliases in Explicit Block Mapping" + localPath: yaml-test-suite/6M2F/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 19 + lineCount: 3 + - id: "6PBE" + name: "Zero-indented sequences in explicit mapping keys" + localPath: yaml-test-suite/6PBE/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 24 + lineCount: 7 + - id: "6S55" + name: "Invalid scalar at the end of sequence" + localPath: yaml-test-suite/6S55/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 28 + lineCount: 4 + - id: "6SLA" + name: "Allowed characters in quoted mapping key" + localPath: yaml-test-suite/6SLA/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 58 + lineCount: 2 + - id: "6VJK" + name: "Spec Example 2.15. Folded newlines are preserved for \"more indented\" and blank lines" + localPath: yaml-test-suite/6VJK/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 120 + lineCount: 8 + - id: "6WLZ" + name: "Spec Example 6.18. Primary Tag Handle [1.3]" + localPath: yaml-test-suite/6WLZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 86 + lineCount: 8 + - id: "6WPF" + name: "Spec Example 6.8. Flow Folding [1.3]" + localPath: yaml-test-suite/6WPF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 8 + - id: "6XDY" + name: "Two document start markers" + localPath: yaml-test-suite/6XDY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 8 + lineCount: 2 + - id: "6ZKB" + name: "Spec Example 9.6. Stream" + localPath: yaml-test-suite/6ZKB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 53 + lineCount: 7 + - id: "735Y" + name: "Spec Example 8.20. Block Node Types" + localPath: yaml-test-suite/735Y/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 77 + lineCount: 6 + - id: "74H7" + name: "Tags in Implicit Mapping" + localPath: yaml-test-suite/74H7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 5 + - id: "753E" + name: "Block Scalar Strip [1.3]" + localPath: yaml-test-suite/753E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 5 + - id: "7A4E" + name: "Spec Example 7.6. Double Quoted Lines" + localPath: yaml-test-suite/7A4E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 4 + - id: "7BMT" + name: "Node and Mapping Key Anchors [1.3]" + localPath: yaml-test-suite/7BMT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 186 + lineCount: 15 + - id: "7BUB" + name: "Spec Example 2.10. Node for “Sammy Sosa” appears twice in this document" + localPath: yaml-test-suite/7BUB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 127 + lineCount: 8 + - id: "7FWL" + name: "Spec Example 6.24. Verbatim Tags" + localPath: yaml-test-suite/7FWL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 45 + lineCount: 2 + - id: "7LBH" + name: "Multiline double quoted implicit keys" + localPath: yaml-test-suite/7LBH/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 3 + - id: "7MNF" + name: "Missing colon" + localPath: yaml-test-suite/7MNF/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "7T8X" + name: "Spec Example 8.10. Folded Lines - 8.13. Final Empty Lines" + localPath: yaml-test-suite/7T8X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 88 + lineCount: 16 + - id: "7TMG" + name: "Comment in flow sequence before comma" + localPath: yaml-test-suite/7TMG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 4 + - id: "7W2P" + name: "Block Mapping with Missing Values" + localPath: yaml-test-suite/7W2P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 3 + - id: "7Z25" + name: "Bare document after document end marker" + localPath: yaml-test-suite/7Z25/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 4 + - id: "7ZZ5" + name: "Empty flow collections" + localPath: yaml-test-suite/7ZZ5/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 58 + lineCount: 6 + - id: "82AN" + name: "Three dashes and content without space" + localPath: yaml-test-suite/82AN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "87E4" + name: "Spec Example 7.8. Single Quoted Implicit Keys" + localPath: yaml-test-suite/87E4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 3 + - id: "8CWC" + name: "Plain mapping key ending with colon" + localPath: yaml-test-suite/8CWC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 2 + - id: "8G76" + name: "Spec Example 6.10. Comment Lines" + localPath: yaml-test-suite/8G76/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 18 + lineCount: 4 + - id: "8KB6" + name: "Multiline plain flow mapping key without value" + localPath: yaml-test-suite/8KB6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 51 + lineCount: 4 + - id: "8MK2" + name: "Explicit Non-Specific Tag" + localPath: yaml-test-suite/8MK2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 4 + lineCount: 1 + - id: "8QBE" + name: "Block Sequence in Block Mapping" + localPath: yaml-test-suite/8QBE/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 3 + - id: "8UDB" + name: "Spec Example 7.14. Flow Sequence Entries" + localPath: yaml-test-suite/8UDB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 89 + lineCount: 8 + - id: "8XDJ" + name: "Comment in plain multiline value" + localPath: yaml-test-suite/8XDJ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 26 + lineCount: 3 + - id: "8XYN" + name: "Anchor with unicode character" + localPath: yaml-test-suite/8XYN/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 27 + lineCount: 2 + - id: "93JH" + name: "Block Mappings in Block Sequence" + localPath: yaml-test-suite/93JH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 49 + lineCount: 4 + - id: "93WF" + name: "Spec Example 6.6. Line Folding [1.3]" + localPath: yaml-test-suite/93WF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 7 + - id: "96L6" + name: "Spec Example 2.14. In the folded scalars, newlines become spaces" + localPath: yaml-test-suite/96L6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 63 + lineCount: 4 + - id: "96NN/00" + name: "Leading tab content in literals" + localPath: yaml-test-suite/96NN/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "96NN/01" + name: "Leading tab content in literals" + localPath: yaml-test-suite/96NN/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 1 + - id: "98YD" + name: "Spec Example 5.5. Comment Indicator" + localPath: yaml-test-suite/98YD/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 16 + lineCount: 1 + - id: "9BXH" + name: "Multiline doublequoted flow mapping key without value" + localPath: yaml-test-suite/9BXH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 55 + lineCount: 4 + - id: "9C9N" + name: "Wrong indented flow sequence" + localPath: yaml-test-suite/9C9N/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 4 + - id: "9CWY" + name: "Invalid scalar at the end of mapping" + localPath: yaml-test-suite/9CWY/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 31 + lineCount: 4 + - id: "9DXL" + name: "Spec Example 9.6. Stream [1.3]" + localPath: yaml-test-suite/9DXL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 7 + - id: "9FMG" + name: "Multi-level Mapping Indent" + localPath: yaml-test-suite/9FMG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 6 + - id: "9HCY" + name: "Need document footer before directives" + localPath: yaml-test-suite/9HCY/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 59 + lineCount: 4 + - id: "9J7A" + name: "Simple Mapping Indent" + localPath: yaml-test-suite/9J7A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "9JBA" + name: "Invalid comment after end of flow sequence" + localPath: yaml-test-suite/9JBA/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 2 + - id: "9KAX" + name: "Various combinations of tags and anchors" + localPath: yaml-test-suite/9KAX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 219 + lineCount: 26 + - id: "9KBC" + name: "Mapping starting at --- line" + localPath: yaml-test-suite/9KBC/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 34 + lineCount: 2 + - id: "9MAG" + name: "Flow sequence with invalid comma at the beginning" + localPath: yaml-test-suite/9MAG/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 2 + - id: "9MMA" + name: "Directive by itself with no document" + localPath: yaml-test-suite/9MMA/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 10 + lineCount: 1 + - id: "9MMW" + name: "Single Pair Implicit Entries" + localPath: yaml-test-suite/9MMW/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 77 + lineCount: 3 + - id: "9MQT/00" + name: "Scalar doc with '...' in content" + localPath: yaml-test-suite/9MQT/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 3 + - id: "9MQT/01" + name: "Scalar doc with '...' in content" + localPath: yaml-test-suite/9MQT/01/in.yaml + expected: reject + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "9SA2" + name: "Multiline double quoted flow mapping key" + localPath: yaml-test-suite/9SA2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 57 + lineCount: 4 + - id: "9SHH" + name: "Spec Example 5.8. Quoted Scalar Indicators" + localPath: yaml-test-suite/9SHH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 2 + - id: "9TFX" + name: "Spec Example 7.6. Double Quoted Lines [1.3]" + localPath: yaml-test-suite/9TFX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 5 + - id: "9U5K" + name: "Spec Example 2.12. Compact Nested Mapping" + localPath: yaml-test-suite/9U5K/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 135 + lineCount: 8 + - id: "9WXW" + name: "Spec Example 6.18. Primary Tag Handle" + localPath: yaml-test-suite/9WXW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 82 + lineCount: 7 + - id: "9YRD" + name: "Multiline Scalar at Top Level" + localPath: yaml-test-suite/9YRD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 6 + - id: "A2M4" + name: "Spec Example 6.2. Indentation Indicators" + localPath: yaml-test-suite/A2M4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 4 + - id: "A6F9" + name: "Spec Example 8.4. Chomping Final Line Break" + localPath: yaml-test-suite/A6F9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 48 + lineCount: 6 + - id: "A984" + name: "Multiline Scalar in Mapping" + localPath: yaml-test-suite/A984/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 5 + - id: "AB8U" + name: "Sequence entry that looks like two with wrong indentation" + localPath: yaml-test-suite/AB8U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 37 + lineCount: 2 + - id: "AVM7" + name: "Empty Stream" + localPath: yaml-test-suite/AVM7/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 0 + lineCount: 0 + - id: "AZ63" + name: "Sequence With Same Indentation as Parent Mapping" + localPath: yaml-test-suite/AZ63/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 4 + - id: "AZW3" + name: "Lookahead test cases" + localPath: yaml-test-suite/AZW3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 2 + - id: "B3HG" + name: "Spec Example 8.9. Folded Scalar [1.3]" + localPath: yaml-test-suite/B3HG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 5 + - id: "B63P" + name: "Directive without document" + localPath: yaml-test-suite/B63P/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 2 + - id: "BD7L" + name: "Invalid mapping after sequence" + localPath: yaml-test-suite/BD7L/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 27 + lineCount: 3 + - id: "BEC7" + name: "Spec Example 6.14. “YAML” directive" + localPath: yaml-test-suite/BEC7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 65 + lineCount: 4 + - id: "BF9H" + name: "Trailing comment in multiline plain scalar" + localPath: yaml-test-suite/BF9H/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 47 + lineCount: 4 + - id: "BS4K" + name: "Comment between plain scalar lines" + localPath: yaml-test-suite/BS4K/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 23 + lineCount: 2 + - id: "BU8L" + name: "Node Anchor and Tag on Seperate Lines" + localPath: yaml-test-suite/BU8L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 3 + - id: "C2DT" + name: "Spec Example 7.18. Flow Mapping Adjacent Values" + localPath: yaml-test-suite/C2DT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 5 + - id: "C2SP" + name: "Flow Mapping Key on two lines" + localPath: yaml-test-suite/C2SP/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 10 + lineCount: 2 + - id: "C4HZ" + name: "Spec Example 2.24. Global Tags" + localPath: yaml-test-suite/C4HZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 298 + lineCount: 14 + - id: "CC74" + name: "Spec Example 6.20. Tag Handles" + localPath: yaml-test-suite/CC74/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 3 + - id: "CFD4" + name: "Empty implicit key in single pair flow sequences" + localPath: yaml-test-suite/CFD4/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 42 + lineCount: 2 + - id: "CML9" + name: "Missing comma in flow" + localPath: yaml-test-suite/CML9/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 30 + lineCount: 3 + - id: "CN3R" + name: "Various location of anchors in flow sequence" + localPath: yaml-test-suite/CN3R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 57 + lineCount: 6 + - id: "CPZ3" + name: "Doublequoted scalar starting with a tab" + localPath: yaml-test-suite/CPZ3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 2 + - id: "CQ3W" + name: "Double quoted string without closing quote" + localPath: yaml-test-suite/CQ3W/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 32 + lineCount: 2 + - id: "CT4Q" + name: "Spec Example 7.20. Single Pair Explicit Entry" + localPath: yaml-test-suite/CT4Q/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 4 + - id: "CTN5" + name: "Flow sequence with invalid extra comma" + localPath: yaml-test-suite/CTN5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 19 + lineCount: 2 + - id: "CUP7" + name: "Spec Example 5.6. Node Property Indicators" + localPath: yaml-test-suite/CUP7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 46 + lineCount: 2 + - id: "CVW2" + name: "Invalid comment after comma" + localPath: yaml-test-suite/CVW2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 3 + - id: "CXX2" + name: "Mapping with anchor on document start line" + localPath: yaml-test-suite/CXX2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 17 + lineCount: 1 + - id: "D49Q" + name: "Multiline single quoted implicit keys" + localPath: yaml-test-suite/D49Q/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 3 + - id: "D83L" + name: "Block scalar indicator order" + localPath: yaml-test-suite/D83L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 68 + lineCount: 4 + - id: "D88J" + name: "Flow Sequence in Block Mapping" + localPath: yaml-test-suite/D88J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 10 + lineCount: 1 + - id: "D9TU" + name: "Single Pair Block Mapping" + localPath: yaml-test-suite/D9TU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 1 + - id: "DBG4" + name: "Spec Example 7.10. Plain Characters" + localPath: yaml-test-suite/DBG4/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 218 + lineCount: 12 + - id: "DC7X" + name: "Various trailing tabs" + localPath: yaml-test-suite/DC7X/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 26 + lineCount: 4 + - id: "DE56/00" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "DE56/01" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DE56/02" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "DE56/03" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DE56/04" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "DE56/05" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "DFF7" + name: "Spec Example 7.16. Flow Mapping Entries" + localPath: yaml-test-suite/DFF7/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 42 + lineCount: 5 + - id: "DHP8" + name: "Flow Sequence" + localPath: yaml-test-suite/DHP8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 1 + - id: "DK3J" + name: "Zero indented block scalar with line that looks like a comment" + localPath: yaml-test-suite/DK3J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 4 + - id: "DK4H" + name: "Implicit key followed by newline" + localPath: yaml-test-suite/DK4H/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 22 + lineCount: 3 + - id: "DK95/00" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 2 + - id: "DK95/01" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/01/in.yaml + expected: reject + oracle: json + status: gap + byteCount: 16 + lineCount: 2 + - id: "DK95/02" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 2 + - id: "DK95/03" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 10 + lineCount: 2 + - id: "DK95/04" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "DK95/05" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "DK95/06" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/06/in.yaml + expected: reject + oracle: json + status: passing + byteCount: 20 + lineCount: 3 + - id: "DK95/07" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/07/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "DK95/08" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/08/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DMG6" + name: "Wrong indendation in Map" + localPath: yaml-test-suite/DMG6/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 23 + lineCount: 3 + - id: "DWX9" + name: "Spec Example 8.8. Literal Content" + localPath: yaml-test-suite/DWX9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 9 + - id: "E76Z" + name: "Aliases in Implicit Block Mapping" + localPath: yaml-test-suite/E76Z/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 2 + - id: "EB22" + name: "Missing document-end marker before directive" + localPath: yaml-test-suite/EB22/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 44 + lineCount: 5 + - id: "EHF6" + name: "Tags for Flow Objects" + localPath: yaml-test-suite/EHF6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 37 + lineCount: 4 + - id: "EW3V" + name: "Wrong indendation in mapping" + localPath: yaml-test-suite/EW3V/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 15 + lineCount: 2 + - id: "EX5H" + name: "Multiline Scalar at Top Level [1.3]" + localPath: yaml-test-suite/EX5H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 7 + - id: "EXG3" + name: "Three dashes and content without space [1.3]" + localPath: yaml-test-suite/EXG3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 3 + - id: "F2C7" + name: "Anchors and Tags" + localPath: yaml-test-suite/F2C7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 47 + lineCount: 4 + - id: "F3CP" + name: "Nested flow collections on one line" + localPath: yaml-test-suite/F3CP/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 2 + - id: "F6MC" + name: "More indented lines at the beginning of folded block scalars" + localPath: yaml-test-suite/F6MC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 72 + lineCount: 9 + - id: "F8F9" + name: "Spec Example 8.5. Chomping Trailing Lines" + localPath: yaml-test-suite/F8F9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 152 + lineCount: 19 + - id: "FBC9" + name: "Allowed characters in plain scalars" + localPath: yaml-test-suite/FBC9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 148 + lineCount: 5 + - id: "FH7J" + name: "Tags on Empty Scalars" + localPath: yaml-test-suite/FH7J/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 51 + lineCount: 5 + - id: "FP8R" + name: "Zero indented block scalar" + localPath: yaml-test-suite/FP8R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 4 + - id: "FQ7F" + name: "Spec Example 2.1. Sequence of Scalars" + localPath: yaml-test-suite/FQ7F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 42 + lineCount: 3 + - id: "FRK4" + name: "Spec Example 7.3. Completely Empty Flow Nodes" + localPath: yaml-test-suite/FRK4/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 24 + lineCount: 4 + - id: "FTA2" + name: "Single block sequence with anchor and explicit document start" + localPath: yaml-test-suite/FTA2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 2 + - id: "FUP4" + name: "Flow Sequence in Flow Sequence" + localPath: yaml-test-suite/FUP4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 12 + lineCount: 1 + - id: "G4RS" + name: "Spec Example 2.17. Quoted Scalars" + localPath: yaml-test-suite/G4RS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 177 + lineCount: 7 + - id: "G5U8" + name: "Plain dashes in flow sequence" + localPath: yaml-test-suite/G5U8/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 13 + lineCount: 2 + - id: "G7JE" + name: "Multiline implicit keys" + localPath: yaml-test-suite/G7JE/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 16 + lineCount: 3 + - id: "G992" + name: "Spec Example 8.9. Folded Scalar" + localPath: yaml-test-suite/G992/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 5 + - id: "G9HC" + name: "Invalid anchor in zero indented sequence" + localPath: yaml-test-suite/G9HC/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 25 + lineCount: 5 + - id: "GDY7" + name: "Comment that looks like a mapping key" + localPath: yaml-test-suite/GDY7/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 31 + lineCount: 2 + - id: "GH63" + name: "Mixed Block Mapping (explicit to implicit)" + localPath: yaml-test-suite/GH63/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "GT5M" + name: "Node anchor in sequence" + localPath: yaml-test-suite/GT5M/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 3 + - id: "H2RW" + name: "Blank lines" + localPath: yaml-test-suite/H2RW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 12 + - id: "H3Z8" + name: "Literal unicode" + localPath: yaml-test-suite/H3Z8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 2 + - id: "H7J7" + name: "Node anchor not indented" + localPath: yaml-test-suite/H7J7/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 21 + lineCount: 3 + - id: "H7TQ" + name: "Extra words on %YAML directive" + localPath: yaml-test-suite/H7TQ/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "HM87/00" + name: "Scalars in flow start with syntax char" + localPath: yaml-test-suite/HM87/00/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 5 + lineCount: 1 + - id: "HM87/01" + name: "Scalars in flow start with syntax char" + localPath: yaml-test-suite/HM87/01/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 5 + lineCount: 1 + - id: "HMK4" + name: "Spec Example 2.16. Indentation determines scope" + localPath: yaml-test-suite/HMK4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 138 + lineCount: 7 + - id: "HMQ5" + name: "Spec Example 6.23. Node Properties" + localPath: yaml-test-suite/HMQ5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 3 + - id: "HRE5" + name: "Double quoted scalar with escaped single quote" + localPath: yaml-test-suite/HRE5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 31 + lineCount: 2 + - id: "HS5T" + name: "Spec Example 7.12. Plain Lines" + localPath: yaml-test-suite/HS5T/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 46 + lineCount: 4 + - id: "HU3P" + name: "Invalid Mapping in plain scalar" + localPath: yaml-test-suite/HU3P/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 29 + lineCount: 3 + - id: "HWV9" + name: "Document-end marker" + localPath: yaml-test-suite/HWV9/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 4 + lineCount: 1 + - id: "J3BT" + name: "Spec Example 5.12. Tabs and Spaces" + localPath: yaml-test-suite/J3BT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 96 + lineCount: 6 + - id: "J5UC" + name: "Multiple Pair Block Mapping" + localPath: yaml-test-suite/J5UC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 3 + - id: "J7PZ" + name: "Spec Example 2.26. Ordered Mappings" + localPath: yaml-test-suite/J7PZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 318 + lineCount: 11 + - id: "J7VC" + name: "Empty Lines Between Mapping Elements" + localPath: yaml-test-suite/J7VC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 4 + - id: "J9HZ" + name: "Spec Example 2.9. Single Document with Two Comments" + localPath: yaml-test-suite/J9HZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 115 + lineCount: 8 + - id: "JEF9/00" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 3 + - id: "JEF9/01" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 2 + - id: "JEF9/02" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/02/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 8 + lineCount: 1 + - id: "JHB9" + name: "Spec Example 2.7. Two Documents in a Stream" + localPath: yaml-test-suite/JHB9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 130 + lineCount: 10 + - id: "JKF3" + name: "Multiline unidented double quoted block key" + localPath: yaml-test-suite/JKF3/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 17 + lineCount: 2 + - id: "JQ4R" + name: "Spec Example 8.14. Block Sequence" + localPath: yaml-test-suite/JQ4R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 40 + lineCount: 3 + - id: "JR7V" + name: "Question marks in scalars" + localPath: yaml-test-suite/JR7V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 128 + lineCount: 8 + - id: "JS2J" + name: "Spec Example 6.29. Node Anchors" + localPath: yaml-test-suite/JS2J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "JTV5" + name: "Block Mapping with Multiline Scalars" + localPath: yaml-test-suite/JTV5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 6 + - id: "JY7Z" + name: "Trailing content that looks like a mapping" + localPath: yaml-test-suite/JY7Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 66 + lineCount: 3 + - id: "K3WX" + name: "Colon and adjacent value after comment on next line" + localPath: yaml-test-suite/K3WX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 3 + - id: "K4SU" + name: "Multiple Entry Block Sequence" + localPath: yaml-test-suite/K4SU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "K527" + name: "Spec Example 6.6. Line Folding" + localPath: yaml-test-suite/K527/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 7 + - id: "K54U" + name: "Tab after document header" + localPath: yaml-test-suite/K54U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 1 + - id: "K858" + name: "Spec Example 8.6. Empty Scalar Chomping" + localPath: yaml-test-suite/K858/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 6 + - id: "KH5V/00" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "KH5V/01" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "KH5V/02" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 1 + - id: "KK5P" + name: "Various combinations of explicit block mappings" + localPath: yaml-test-suite/KK5P/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 124 + lineCount: 16 + - id: "KMK3" + name: "Block Submapping" + localPath: yaml-test-suite/KMK3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "KS4U" + name: "Invalid item after end of flow sequence" + localPath: yaml-test-suite/KS4U/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 35 + lineCount: 5 + - id: "KSS4" + name: "Scalars on --- line" + localPath: yaml-test-suite/KSS4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 3 + - id: "L24T/00" + name: "Trailing line of spaces" + localPath: yaml-test-suite/L24T/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 3 + - id: "L24T/01" + name: "Trailing line of spaces" + localPath: yaml-test-suite/L24T/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "L383" + name: "Two scalar docs with trailing comments" + localPath: yaml-test-suite/L383/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 2 + - id: "L94M" + name: "Tags in Explicit Mapping" + localPath: yaml-test-suite/L94M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 4 + - id: "L9U5" + name: "Spec Example 7.11. Plain Implicit Keys" + localPath: yaml-test-suite/L9U5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 55 + lineCount: 3 + - id: "LE5A" + name: "Spec Example 7.24. Flow Nodes" + localPath: yaml-test-suite/LE5A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 5 + - id: "LHL4" + name: "Invalid tag" + localPath: yaml-test-suite/LHL4/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 25 + lineCount: 2 + - id: "LP6E" + name: "Whitespace After Scalars in Flow" + localPath: yaml-test-suite/LP6E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 6 + - id: "LQZ7" + name: "Spec Example 7.4. Double Quoted Implicit Keys" + localPath: yaml-test-suite/LQZ7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 3 + - id: "LX3P" + name: "Implicit Flow Mapping Key on one line" + localPath: yaml-test-suite/LX3P/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 14 + lineCount: 1 + - id: "M29M" + name: "Literal Block Scalar" + localPath: yaml-test-suite/M29M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 8 + - id: "M2N8/00" + name: "Question mark edge cases" + localPath: yaml-test-suite/M2N8/00/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 1 + - id: "M2N8/01" + name: "Question mark edge cases" + localPath: yaml-test-suite/M2N8/01/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 1 + - id: "M5C3" + name: "Spec Example 8.21. Block Scalar Nodes" + localPath: yaml-test-suite/M5C3/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 48 + lineCount: 6 + - id: "M5DY" + name: "Spec Example 2.11. Mapping between Sequences" + localPath: yaml-test-suite/M5DY/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 142 + lineCount: 9 + - id: "M6YH" + name: "Block sequence indentation" + localPath: yaml-test-suite/M6YH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 6 + - id: "M7A3" + name: "Spec Example 9.3. Bare Documents" + localPath: yaml-test-suite/M7A3/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 74 + lineCount: 7 + - id: "M7NX" + name: "Nested flow collections" + localPath: yaml-test-suite/M7NX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 8 + - id: "M9B4" + name: "Spec Example 8.7. Literal Scalar" + localPath: yaml-test-suite/M9B4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "MJS9" + name: "Spec Example 6.7. Block Folding" + localPath: yaml-test-suite/MJS9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 6 + - id: "MUS6/00" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/00/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "MUS6/01" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/01/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 28 + lineCount: 4 + - id: "MUS6/02" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "MUS6/03" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "MUS6/04" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "MUS6/05" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 2 + - id: "MUS6/06" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/06/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "MXS3" + name: "Flow Mapping in Block Sequence" + localPath: yaml-test-suite/MXS3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 1 + - id: "MYW6" + name: "Block Scalar Strip" + localPath: yaml-test-suite/MYW6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 5 + - id: "MZX3" + name: "Non-Specific Tags on Scalars" + localPath: yaml-test-suite/MZX3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 6 + - id: "N4JP" + name: "Bad indentation in mapping" + localPath: yaml-test-suite/N4JP/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 48 + lineCount: 3 + - id: "N782" + name: "Invalid document markers in flow style" + localPath: yaml-test-suite/N782/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 4 + - id: "NAT4" + name: "Various empty or newline only quoted strings" + localPath: yaml-test-suite/NAT4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 86 + lineCount: 23 + - id: "NB6Z" + name: "Multiline plain value with tabs on empty lines" + localPath: yaml-test-suite/NB6Z/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 31 + lineCount: 5 + - id: "NHX8" + name: "Empty Lines at End of Document" + localPath: yaml-test-suite/NHX8/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 4 + lineCount: 3 + - id: "NJ66" + name: "Multiline plain flow mapping key" + localPath: yaml-test-suite/NJ66/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 53 + lineCount: 4 + - id: "NKF9" + name: "Empty keys in block and flow mapping" + localPath: yaml-test-suite/NKF9/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 120 + lineCount: 13 + - id: "NP9H" + name: "Spec Example 7.5. Double Quoted Line Breaks" + localPath: yaml-test-suite/NP9H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 63 + lineCount: 5 + - id: "P2AD" + name: "Spec Example 8.1. Block Scalar Header" + localPath: yaml-test-suite/P2AD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 143 + lineCount: 9 + - id: "P2EQ" + name: "Invalid sequene item on same line as previous item" + localPath: yaml-test-suite/P2EQ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 24 + lineCount: 2 + - id: "P76L" + name: "Spec Example 6.19. Secondary Tag Handle" + localPath: yaml-test-suite/P76L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 74 + lineCount: 3 + - id: "P94K" + name: "Spec Example 6.11. Multi-Line Comments" + localPath: yaml-test-suite/P94K/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 5 + - id: "PBJ2" + name: "Spec Example 2.3. Mapping Scalars to Sequences" + localPath: yaml-test-suite/PBJ2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 133 + lineCount: 8 + - id: "PRH3" + name: "Spec Example 7.9. Single Quoted Lines" + localPath: yaml-test-suite/PRH3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 4 + - id: "PUW8" + name: "Document start on last line" + localPath: yaml-test-suite/PUW8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 3 + - id: "PW8X" + name: "Anchors on Empty Scalars" + localPath: yaml-test-suite/PW8X/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 65 + lineCount: 12 + - id: "Q4CL" + name: "Trailing content after quoted value" + localPath: yaml-test-suite/Q4CL/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 65 + lineCount: 3 + - id: "Q5MG" + name: "Tab at beginning of line followed by a flow mapping" + localPath: yaml-test-suite/Q5MG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 4 + lineCount: 1 + - id: "Q88A" + name: "Spec Example 7.23. Flow Content" + localPath: yaml-test-suite/Q88A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 5 + - id: "Q8AD" + name: "Spec Example 7.5. Double Quoted Line Breaks [1.3]" + localPath: yaml-test-suite/Q8AD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 66 + lineCount: 6 + - id: "Q9WF" + name: "Spec Example 6.12. Separation Spaces" + localPath: yaml-test-suite/Q9WF/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 97 + lineCount: 6 + - id: "QB6E" + name: "Wrong indented multiline quoted scalar" + localPath: yaml-test-suite/QB6E/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 4 + - id: "QF4Y" + name: "Spec Example 7.19. Single Pair Flow Mappings" + localPath: yaml-test-suite/QF4Y/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 3 + - id: "QLJ7" + name: "Tag shorthand used in documents but only defined in the first" + localPath: yaml-test-suite/QLJ7/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 93 + lineCount: 7 + - id: "QT73" + name: "Comment and document-end marker" + localPath: yaml-test-suite/QT73/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 14 + lineCount: 2 + - id: "R4YG" + name: "Spec Example 8.2. Block Indentation Indicator" + localPath: yaml-test-suite/R4YG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 69 + lineCount: 11 + - id: "R52L" + name: "Nested flow mapping sequence and mappings" + localPath: yaml-test-suite/R52L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "RHX7" + name: "YAML directive without document end marker" + localPath: yaml-test-suite/RHX7/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 29 + lineCount: 4 + - id: "RLU9" + name: "Sequence Indent" + localPath: yaml-test-suite/RLU9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 4 + - id: "RR7F" + name: "Mixed Block Mapping (implicit to explicit)" + localPath: yaml-test-suite/RR7F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "RTP8" + name: "Spec Example 9.2. Document Markers" + localPath: yaml-test-suite/RTP8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 4 + - id: "RXY3" + name: "Invalid document-end marker in single quoted string" + localPath: yaml-test-suite/RXY3/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 12 + lineCount: 4 + - id: "RZP5" + name: "Various Trailing Comments [1.3]" + localPath: yaml-test-suite/RZP5/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 157 + lineCount: 15 + - id: "RZT7" + name: "Spec Example 2.28. Log File" + localPath: yaml-test-suite/RZT7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 411 + lineCount: 26 + - id: "S3PD" + name: "Spec Example 8.18. Implicit Block Mapping Entries" + localPath: yaml-test-suite/S3PD/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 62 + lineCount: 4 + - id: "S4GJ" + name: "Invalid text after block scalar indicator" + localPath: yaml-test-suite/S4GJ/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 39 + lineCount: 3 + - id: "S4JQ" + name: "Spec Example 6.28. Non-Specific Tags" + localPath: yaml-test-suite/S4JQ/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 55 + lineCount: 4 + - id: "S4T7" + name: "Document with footer" + localPath: yaml-test-suite/S4T7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 2 + - id: "S7BG" + name: "Colon followed by comma" + localPath: yaml-test-suite/S7BG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 2 + - id: "S98Z" + name: "Block scalar with more spaces than first content line" + localPath: yaml-test-suite/S98Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 42 + lineCount: 5 + - id: "S9E8" + name: "Spec Example 5.3. Block Structure Indicators" + localPath: yaml-test-suite/S9E8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 7 + - id: "SBG9" + name: "Flow Sequence in Flow Mapping" + localPath: yaml-test-suite/SBG9/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 23 + lineCount: 1 + - id: "SF5V" + name: "Duplicate YAML directive" + localPath: yaml-test-suite/SF5V/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "SKE5" + name: "Anchor before zero indented sequence" + localPath: yaml-test-suite/SKE5/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 26 + lineCount: 5 + - id: "SM9W/00" + name: "Single character streams" + localPath: yaml-test-suite/SM9W/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 1 + lineCount: 0 + - id: "SM9W/01" + name: "Single character streams" + localPath: yaml-test-suite/SM9W/01/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 1 + lineCount: 0 + - id: "SR86" + name: "Anchor plus Alias" + localPath: yaml-test-suite/SR86/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 27 + lineCount: 2 + - id: "SSW6" + name: "Spec Example 7.7. Single Quoted Characters [1.3]" + localPath: yaml-test-suite/SSW6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 2 + - id: "SU5Z" + name: "Comment without whitespace after doublequoted scalar" + localPath: yaml-test-suite/SU5Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 30 + lineCount: 1 + - id: "SU74" + name: "Anchor and alias as mapping key" + localPath: yaml-test-suite/SU74/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 39 + lineCount: 2 + - id: "SY6V" + name: "Anchor before sequence entry on same line" + localPath: yaml-test-suite/SY6V/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 1 + - id: "SYW4" + name: "Spec Example 2.2. Mapping Scalars to Scalars" + localPath: yaml-test-suite/SYW4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 3 + - id: "T26H" + name: "Spec Example 8.8. Literal Content [1.3]" + localPath: yaml-test-suite/T26H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 47 + lineCount: 9 + - id: "T4YY" + name: "Spec Example 7.9. Single Quoted Lines [1.3]" + localPath: yaml-test-suite/T4YY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 5 + - id: "T5N4" + name: "Spec Example 8.7. Literal Scalar [1.3]" + localPath: yaml-test-suite/T5N4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 5 + - id: "T833" + name: "Flow mapping missing a separating comma" + localPath: yaml-test-suite/T833/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 4 + - id: "TD5N" + name: "Invalid scalar after sequence" + localPath: yaml-test-suite/TD5N/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "TE2A" + name: "Spec Example 8.16. Block Mappings" + localPath: yaml-test-suite/TE2A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 2 + - id: "TL85" + name: "Spec Example 6.8. Flow Folding" + localPath: yaml-test-suite/TL85/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 7 + - id: "TS54" + name: "Folded Block Scalar" + localPath: yaml-test-suite/TS54/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 8 + - id: "U3C3" + name: "Spec Example 6.16. “TAG” directive" + localPath: yaml-test-suite/U3C3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 51 + lineCount: 3 + - id: "U3XV" + name: "Node and Mapping Key Anchors" + localPath: yaml-test-suite/U3XV/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 190 + lineCount: 17 + - id: "U44R" + name: "Bad indentation in mapping (2)" + localPath: yaml-test-suite/U44R/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 50 + lineCount: 3 + - id: "U99R" + name: "Invalid comma in tag" + localPath: yaml-test-suite/U99R/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 13 + lineCount: 1 + - id: "U9NS" + name: "Spec Example 2.8. Play by Play Feed from a Game" + localPath: yaml-test-suite/U9NS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 125 + lineCount: 10 + - id: "UDM2" + name: "Plain URL in flow mapping" + localPath: yaml-test-suite/UDM2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 1 + - id: "UDR7" + name: "Spec Example 5.4. Flow Collection Indicators" + localPath: yaml-test-suite/UDR7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "UGM3" + name: "Spec Example 2.27. Invoice" + localPath: yaml-test-suite/UGM3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 644 + lineCount: 29 + - id: "UKK6/00" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/00/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 4 + lineCount: 1 + - id: "UKK6/01" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 3 + lineCount: 1 + - id: "UKK6/02" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/02/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 2 + lineCount: 1 + - id: "UT92" + name: "Spec Example 9.4. Explicit Documents" + localPath: yaml-test-suite/UT92/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 7 + - id: "UV7Q" + name: "Legal tab after indentation" + localPath: yaml-test-suite/UV7Q/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 13 + lineCount: 3 + - id: "V55R" + name: "Aliases in Block Sequence" + localPath: yaml-test-suite/V55R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 4 + - id: "V9D5" + name: "Spec Example 8.19. Compact Block Mappings" + localPath: yaml-test-suite/V9D5/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 46 + lineCount: 3 + - id: "VJP3/00" + name: "Flow collections over many lines" + localPath: yaml-test-suite/VJP3/00/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 13 + lineCount: 5 + - id: "VJP3/01" + name: "Flow collections over many lines" + localPath: yaml-test-suite/VJP3/01/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 17 + lineCount: 5 + - id: "W42U" + name: "Spec Example 8.15. Block Sequence Entry Types" + localPath: yaml-test-suite/W42U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 92 + lineCount: 6 + - id: "W4TN" + name: "Spec Example 9.5. Directives Documents" + localPath: yaml-test-suite/W4TN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 61 + lineCount: 8 + - id: "W5VH" + name: "Allowed characters in alias" + localPath: yaml-test-suite/W5VH/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 43 + lineCount: 2 + - id: "W9L4" + name: "Literal block scalar with more spaces in first line" + localPath: yaml-test-suite/W9L4/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 71 + lineCount: 5 + - id: "WZ62" + name: "Spec Example 7.2. Empty Content" + localPath: yaml-test-suite/WZ62/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 4 + - id: "X38W" + name: "Aliases in Flow Objects" + localPath: yaml-test-suite/X38W/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 37 + lineCount: 1 + - id: "X4QW" + name: "Comment without whitespace after block scalar indicator" + localPath: yaml-test-suite/X4QW/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 27 + lineCount: 2 + - id: "X8DW" + name: "Explicit key and value seperated by comment" + localPath: yaml-test-suite/X8DW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 4 + - id: "XLQ9" + name: "Multiline scalar that looks like a YAML directive" + localPath: yaml-test-suite/XLQ9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "XV9V" + name: "Spec Example 6.5. Empty Lines [1.3]" + localPath: yaml-test-suite/XV9V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 79 + lineCount: 8 + - id: "XW4D" + name: "Various Trailing Comments" + localPath: yaml-test-suite/XW4D/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 158 + lineCount: 16 + - id: "Y2GN" + name: "Anchor with colon in the middle" + localPath: yaml-test-suite/Y2GN/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 24 + lineCount: 2 + - id: "Y79Y/000" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/000/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 16 + lineCount: 3 + - id: "Y79Y/001" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/001/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "Y79Y/002" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/002/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 4 + - id: "Y79Y/003" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/003/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 4 + - id: "Y79Y/004" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/004/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 4 + lineCount: 1 + - id: "Y79Y/005" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/005/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 5 + lineCount: 1 + - id: "Y79Y/006" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/006/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 4 + lineCount: 1 + - id: "Y79Y/007" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/007/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 8 + lineCount: 2 + - id: "Y79Y/008" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/008/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 7 + lineCount: 1 + - id: "Y79Y/009" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/009/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 2 + - id: "Y79Y/010" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/010/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 5 + lineCount: 1 + - id: "YD5X" + name: "Spec Example 2.5. Sequence of Sequences" + localPath: yaml-test-suite/YD5X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 84 + lineCount: 3 + - id: "YJV2" + name: "Dash in flow sequence" + localPath: yaml-test-suite/YJV2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 4 + lineCount: 1 + - id: "Z67P" + name: "Spec Example 8.21. Block Scalar Nodes [1.3]" + localPath: yaml-test-suite/Z67P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 4 + - id: "Z9M4" + name: "Spec Example 6.22. Global Tag Prefix" + localPath: yaml-test-suite/Z9M4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 3 + - id: "ZCZ6" + name: "Invalid mapping in plain single line value" + localPath: yaml-test-suite/ZCZ6/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 11 + lineCount: 1 + - id: "ZF4X" + name: "Spec Example 2.6. Mapping of Mappings" + localPath: yaml-test-suite/ZF4X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 5 + - id: "ZH7C" + name: "Anchors in Mapping" + localPath: yaml-test-suite/ZH7C/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "ZK9H" + name: "Nested top level flow mapping" + localPath: yaml-test-suite/ZK9H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 4 + - id: "ZL4Z" + name: "Invalid nested mapping" + localPath: yaml-test-suite/ZL4Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 14 + lineCount: 2 + - id: "ZVH3" + name: "Wrong indented sequence item" + localPath: yaml-test-suite/ZVH3/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 2 + - id: "ZWK4" + name: "Key with anchor after missing explicit mapping value" + localPath: yaml-test-suite/ZWK4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 4 + - id: "ZXT5" + name: "Implicit key followed by newline and adjacent value" + localPath: yaml-test-suite/ZXT5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 19 + lineCount: 2 diff --git a/Tests/Fixtures/yaml-test-suite/229Q/in.json b/Tests/Fixtures/yaml-test-suite/229Q/in.json new file mode 100644 index 0000000..3d3b2d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/229Q/in.json @@ -0,0 +1,12 @@ +[ + { + "name": "Mark McGwire", + "hr": 65, + "avg": 0.278 + }, + { + "name": "Sammy Sosa", + "hr": 63, + "avg": 0.288 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/229Q/in.yaml b/Tests/Fixtures/yaml-test-suite/229Q/in.yaml new file mode 100644 index 0000000..430f6b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/229Q/in.yaml @@ -0,0 +1,8 @@ +- + name: Mark McGwire + hr: 65 + avg: 0.278 +- + name: Sammy Sosa + hr: 63 + avg: 0.288 diff --git a/Tests/Fixtures/yaml-test-suite/236B/error b/Tests/Fixtures/yaml-test-suite/236B/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/236B/in.yaml b/Tests/Fixtures/yaml-test-suite/236B/in.yaml new file mode 100644 index 0000000..254e6fc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/236B/in.yaml @@ -0,0 +1,3 @@ +foo: + bar +invalid diff --git a/Tests/Fixtures/yaml-test-suite/26DV/in.json b/Tests/Fixtures/yaml-test-suite/26DV/in.json new file mode 100644 index 0000000..508c2c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/26DV/in.json @@ -0,0 +1,18 @@ +{ + "top1": { + "key1": "scalar1" + }, + "top2": { + "key2": "scalar2" + }, + "top3": { + "scalar1": "scalar3" + }, + "top4": { + "scalar2": "scalar4" + }, + "top5": "scalar5", + "top6": { + "key6": "scalar6" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/26DV/in.yaml b/Tests/Fixtures/yaml-test-suite/26DV/in.yaml new file mode 100644 index 0000000..5df48e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/26DV/in.yaml @@ -0,0 +1,12 @@ +"top1" : + "key1" : &alias1 scalar1 +'top2' : + 'key2' : &alias2 scalar2 +top3: &node3 + *alias1 : scalar3 +top4: + *alias2 : scalar4 +top5 : + scalar5 +top6: + &anchor6 'key6' : scalar6 diff --git a/Tests/Fixtures/yaml-test-suite/27NA/in.json b/Tests/Fixtures/yaml-test-suite/27NA/in.json new file mode 100644 index 0000000..8ee55ad --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/27NA/in.json @@ -0,0 +1 @@ +"text" diff --git a/Tests/Fixtures/yaml-test-suite/27NA/in.yaml b/Tests/Fixtures/yaml-test-suite/27NA/in.yaml new file mode 100644 index 0000000..62204de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/27NA/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 +--- text diff --git a/Tests/Fixtures/yaml-test-suite/2AUY/in.json b/Tests/Fixtures/yaml-test-suite/2AUY/in.json new file mode 100644 index 0000000..87bffdd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2AUY/in.json @@ -0,0 +1,6 @@ +[ + "a", + "b", + 42, + "d" +] diff --git a/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml b/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml new file mode 100644 index 0000000..5152961 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml @@ -0,0 +1,4 @@ + - !!str a + - b + - !!int 42 + - d diff --git a/Tests/Fixtures/yaml-test-suite/2CMS/error b/Tests/Fixtures/yaml-test-suite/2CMS/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml b/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml new file mode 100644 index 0000000..72d31b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml @@ -0,0 +1,3 @@ +this + is + invalid: x diff --git a/Tests/Fixtures/yaml-test-suite/2EBW/in.json b/Tests/Fixtures/yaml-test-suite/2EBW/in.json new file mode 100644 index 0000000..91f8dbf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2EBW/in.json @@ -0,0 +1,7 @@ +{ + "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~": "safe", + "?foo": "safe question mark", + ":foo": "safe colon", + "-foo": "safe dash", + "this is#not": "a comment" +} diff --git a/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml b/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml new file mode 100644 index 0000000..3a5b0a3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml @@ -0,0 +1,5 @@ +a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~: safe +?foo: safe question mark +:foo: safe colon +-foo: safe dash +this is#not: a comment diff --git a/Tests/Fixtures/yaml-test-suite/2G84/02/in.json b/Tests/Fixtures/yaml-test-suite/2G84/02/in.json new file mode 100644 index 0000000..e16c76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/02/in.json @@ -0,0 +1 @@ +"" diff --git a/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml b/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml new file mode 100644 index 0000000..9d09488 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml @@ -0,0 +1 @@ +--- |1- \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/2G84/03/in.json b/Tests/Fixtures/yaml-test-suite/2G84/03/in.json new file mode 100644 index 0000000..e16c76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/03/in.json @@ -0,0 +1 @@ +"" diff --git a/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml b/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml new file mode 100644 index 0000000..3220349 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml @@ -0,0 +1 @@ +--- |1+ \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml b/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml new file mode 100644 index 0000000..d0a086d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml @@ -0,0 +1,2 @@ +: a +: b diff --git a/Tests/Fixtures/yaml-test-suite/2LFX/in.json b/Tests/Fixtures/yaml-test-suite/2LFX/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2LFX/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml b/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml new file mode 100644 index 0000000..5068618 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml @@ -0,0 +1,4 @@ +%FOO bar baz # Should be ignored + # with a warning. +--- +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/2XXW/in.json b/Tests/Fixtures/yaml-test-suite/2XXW/in.json new file mode 100644 index 0000000..88daa64 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2XXW/in.json @@ -0,0 +1,5 @@ +{ + "Mark McGwire": null, + "Sammy Sosa": null, + "Ken Griff": null +} diff --git a/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml b/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml new file mode 100644 index 0000000..cf4943a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml @@ -0,0 +1,7 @@ +# Sets are represented as a +# Mapping where each key is +# associated with a null value +--- !!set +? Mark McGwire +? Sammy Sosa +? Ken Griff diff --git a/Tests/Fixtures/yaml-test-suite/33X3/in.json b/Tests/Fixtures/yaml-test-suite/33X3/in.json new file mode 100644 index 0000000..bc33116 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/33X3/in.json @@ -0,0 +1,5 @@ +[ + 1, + -2, + 33 +] diff --git a/Tests/Fixtures/yaml-test-suite/33X3/in.yaml b/Tests/Fixtures/yaml-test-suite/33X3/in.yaml new file mode 100644 index 0000000..c30779e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/33X3/in.yaml @@ -0,0 +1,4 @@ +--- +- !!int 1 +- !!int -2 +- !!int 33 diff --git a/Tests/Fixtures/yaml-test-suite/35KP/in.json b/Tests/Fixtures/yaml-test-suite/35KP/in.json new file mode 100644 index 0000000..f8e731c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/35KP/in.json @@ -0,0 +1,7 @@ +{ + "a": "b" +} +[ + "c" +] +"d e" diff --git a/Tests/Fixtures/yaml-test-suite/35KP/in.yaml b/Tests/Fixtures/yaml-test-suite/35KP/in.yaml new file mode 100644 index 0000000..f0d91aa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/35KP/in.yaml @@ -0,0 +1,8 @@ +--- !!map +? a +: b +--- !!seq +- !!str c +--- !!str +d +e diff --git a/Tests/Fixtures/yaml-test-suite/36F6/in.json b/Tests/Fixtures/yaml-test-suite/36F6/in.json new file mode 100644 index 0000000..026d7b4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/36F6/in.json @@ -0,0 +1,3 @@ +{ + "plain": "a b\nc" +} diff --git a/Tests/Fixtures/yaml-test-suite/36F6/in.yaml b/Tests/Fixtures/yaml-test-suite/36F6/in.yaml new file mode 100644 index 0000000..71600b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/36F6/in.yaml @@ -0,0 +1,5 @@ +--- +plain: a + b + + c diff --git a/Tests/Fixtures/yaml-test-suite/3ALJ/in.json b/Tests/Fixtures/yaml-test-suite/3ALJ/in.json new file mode 100644 index 0000000..71ea9d4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3ALJ/in.json @@ -0,0 +1,7 @@ +[ + [ + "s1_i1", + "s1_i2" + ], + "s2" +] diff --git a/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml b/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml new file mode 100644 index 0000000..4738eb1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml @@ -0,0 +1,3 @@ +- - s1_i1 + - s1_i2 +- s2 diff --git a/Tests/Fixtures/yaml-test-suite/3GZX/in.json b/Tests/Fixtures/yaml-test-suite/3GZX/in.json new file mode 100644 index 0000000..4e09f3a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3GZX/in.json @@ -0,0 +1,6 @@ +{ + "First occurrence": "Foo", + "Second occurrence": "Foo", + "Override anchor": "Bar", + "Reuse anchor": "Bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml b/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml new file mode 100644 index 0000000..3887676 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml @@ -0,0 +1,4 @@ +First occurrence: &anchor Foo +Second occurrence: *anchor +Override anchor: &anchor Bar +Reuse anchor: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/3MYT/in.json b/Tests/Fixtures/yaml-test-suite/3MYT/in.json new file mode 100644 index 0000000..1c50067 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3MYT/in.json @@ -0,0 +1 @@ +"k:#foo &a !t s" diff --git a/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml b/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml new file mode 100644 index 0000000..04a1240 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml @@ -0,0 +1,3 @@ +--- +k:#foo + &a !t s diff --git a/Tests/Fixtures/yaml-test-suite/3R3P/in.json b/Tests/Fixtures/yaml-test-suite/3R3P/in.json new file mode 100644 index 0000000..0ede90f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3R3P/in.json @@ -0,0 +1,3 @@ +[ + "a" +] diff --git a/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml b/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml new file mode 100644 index 0000000..bc2204c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml @@ -0,0 +1,2 @@ +&sequence +- a diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json new file mode 100644 index 0000000..821166a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json @@ -0,0 +1 @@ +"1 leading \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml new file mode 100644 index 0000000..a6a23a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml @@ -0,0 +1,2 @@ +"1 leading + \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json new file mode 100644 index 0000000..29133b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json @@ -0,0 +1 @@ +"2 leading \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml new file mode 100644 index 0000000..64057a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml @@ -0,0 +1,2 @@ +"2 leading + \ tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json new file mode 100644 index 0000000..9f23c05 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json @@ -0,0 +1 @@ +"3 leading tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml new file mode 100644 index 0000000..3b18adc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml @@ -0,0 +1,2 @@ +"3 leading + tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json new file mode 100644 index 0000000..75b57d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json @@ -0,0 +1 @@ +"4 leading \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml new file mode 100644 index 0000000..815c713 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml @@ -0,0 +1,2 @@ +"4 leading + \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json new file mode 100644 index 0000000..f73076a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json @@ -0,0 +1 @@ +"5 leading \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml new file mode 100644 index 0000000..07e14f5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml @@ -0,0 +1,2 @@ +"5 leading + \ tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json new file mode 100644 index 0000000..46d1f8c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json @@ -0,0 +1 @@ +"6 leading tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml new file mode 100644 index 0000000..75222d3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml @@ -0,0 +1,2 @@ +"6 leading + tab" diff --git a/Tests/Fixtures/yaml-test-suite/3UYS/in.json b/Tests/Fixtures/yaml-test-suite/3UYS/in.json new file mode 100644 index 0000000..6119ed9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3UYS/in.json @@ -0,0 +1,3 @@ +{ + "escaped slash": "a/b" +} diff --git a/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml b/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml new file mode 100644 index 0000000..e47bf72 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml @@ -0,0 +1 @@ +escaped slash: "a\/b" diff --git a/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml b/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml new file mode 100644 index 0000000..c80379b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml @@ -0,0 +1,5 @@ +{ +unquoted : "separate", +http://foo.com, +omitted value:, +} diff --git a/Tests/Fixtures/yaml-test-suite/4CQQ/in.json b/Tests/Fixtures/yaml-test-suite/4CQQ/in.json new file mode 100644 index 0000000..018e242 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4CQQ/in.json @@ -0,0 +1,4 @@ +{ + "plain": "This unquoted scalar spans many lines.", + "quoted": "So does this quoted scalar.\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml b/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml new file mode 100644 index 0000000..e0a8bfa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml @@ -0,0 +1,6 @@ +plain: + This unquoted scalar + spans many lines. + +quoted: "So does this + quoted scalar.\n" diff --git a/Tests/Fixtures/yaml-test-suite/4EJS/error b/Tests/Fixtures/yaml-test-suite/4EJS/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml b/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml new file mode 100644 index 0000000..b507e20 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml @@ -0,0 +1,4 @@ +--- +a: + b: + c: value diff --git a/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml b/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml new file mode 100644 index 0000000..3f4aabe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml @@ -0,0 +1,4 @@ +--- +[ + [ a, [ [[b,c]]: d, e]]: 23 +] diff --git a/Tests/Fixtures/yaml-test-suite/4GC6/in.json b/Tests/Fixtures/yaml-test-suite/4GC6/in.json new file mode 100644 index 0000000..fdc456c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4GC6/in.json @@ -0,0 +1 @@ +"here's to \"quotes\"" diff --git a/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml b/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml new file mode 100644 index 0000000..3efcb91 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml @@ -0,0 +1 @@ +'here''s to "quotes"' diff --git a/Tests/Fixtures/yaml-test-suite/4H7K/error b/Tests/Fixtures/yaml-test-suite/4H7K/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml b/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml new file mode 100644 index 0000000..686440d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml @@ -0,0 +1,2 @@ +--- +[ a, b, c ] ] diff --git a/Tests/Fixtures/yaml-test-suite/4HVU/error b/Tests/Fixtures/yaml-test-suite/4HVU/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml b/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml new file mode 100644 index 0000000..d4118cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml @@ -0,0 +1,4 @@ +key: + - ok + - also ok + - wrong diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml new file mode 100644 index 0000000..d80f798 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml @@ -0,0 +1,2 @@ +{"foo" +: "bar"} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml new file mode 100644 index 0000000..0ad38e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml @@ -0,0 +1,2 @@ +{"foo" +: bar} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml new file mode 100644 index 0000000..f3b4057 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml @@ -0,0 +1,2 @@ +{foo +: bar} diff --git a/Tests/Fixtures/yaml-test-suite/4Q9F/in.json b/Tests/Fixtures/yaml-test-suite/4Q9F/in.json new file mode 100644 index 0000000..c63e7ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4Q9F/in.json @@ -0,0 +1 @@ +"ab cd\nef\n\ngh\n" diff --git a/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml b/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml new file mode 100644 index 0000000..63a62ab --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml @@ -0,0 +1,8 @@ +--- > + ab + cd + + ef + + + gh diff --git a/Tests/Fixtures/yaml-test-suite/4QFQ/in.json b/Tests/Fixtures/yaml-test-suite/4QFQ/in.json new file mode 100644 index 0000000..6963db1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4QFQ/in.json @@ -0,0 +1,6 @@ +[ + "detected\n", + "\n\n# detected\n", + " explicit\n", + "detected\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml b/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml new file mode 100644 index 0000000..079de26 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml @@ -0,0 +1,10 @@ +- | + detected +- > + + + # detected +- |1 + explicit +- > + detected diff --git a/Tests/Fixtures/yaml-test-suite/4RWC/in.json b/Tests/Fixtures/yaml-test-suite/4RWC/in.json new file mode 100644 index 0000000..a85b7c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4RWC/in.json @@ -0,0 +1,5 @@ +[ + 1, + 2, + 3 +] diff --git a/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml b/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml new file mode 100644 index 0000000..4337a64 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml @@ -0,0 +1,2 @@ + [1, 2, 3] + \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/4UYU/in.json b/Tests/Fixtures/yaml-test-suite/4UYU/in.json new file mode 100644 index 0000000..912727e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4UYU/in.json @@ -0,0 +1 @@ +"foo: bar\": baz" diff --git a/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml b/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml new file mode 100644 index 0000000..912727e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml @@ -0,0 +1 @@ +"foo: bar\": baz" diff --git a/Tests/Fixtures/yaml-test-suite/4V8U/in.json b/Tests/Fixtures/yaml-test-suite/4V8U/in.json new file mode 100644 index 0000000..8391b93 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4V8U/in.json @@ -0,0 +1 @@ +"plain\\value\\with\\backslashes" diff --git a/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml b/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml new file mode 100644 index 0000000..9a786b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml @@ -0,0 +1,2 @@ +--- +plain\value\with\backslashes diff --git a/Tests/Fixtures/yaml-test-suite/4WA9/in.json b/Tests/Fixtures/yaml-test-suite/4WA9/in.json new file mode 100644 index 0000000..bc81564 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4WA9/in.json @@ -0,0 +1,6 @@ +[ + { + "aaa" : "xxx\n", + "bbb" : "xxx\n" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml b/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml new file mode 100644 index 0000000..0d9917e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml @@ -0,0 +1,4 @@ +- aaa: |2 + xxx + bbb: | + xxx diff --git a/Tests/Fixtures/yaml-test-suite/4ZYM/in.json b/Tests/Fixtures/yaml-test-suite/4ZYM/in.json new file mode 100644 index 0000000..b90f107 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ZYM/in.json @@ -0,0 +1,5 @@ +{ + "plain": "text lines", + "quoted": "text lines", + "block": "text\n \tlines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml b/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml new file mode 100644 index 0000000..2f62d08 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml @@ -0,0 +1,7 @@ +plain: text + lines +quoted: "text + lines" +block: | + text + lines diff --git a/Tests/Fixtures/yaml-test-suite/52DL/in.json b/Tests/Fixtures/yaml-test-suite/52DL/in.json new file mode 100644 index 0000000..231f150 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/52DL/in.json @@ -0,0 +1 @@ +"a" diff --git a/Tests/Fixtures/yaml-test-suite/52DL/in.yaml b/Tests/Fixtures/yaml-test-suite/52DL/in.yaml new file mode 100644 index 0000000..ed7ee4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/52DL/in.yaml @@ -0,0 +1,2 @@ +--- +! a diff --git a/Tests/Fixtures/yaml-test-suite/54T7/in.json b/Tests/Fixtures/yaml-test-suite/54T7/in.json new file mode 100644 index 0000000..639f014 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/54T7/in.json @@ -0,0 +1,4 @@ +{ + "foo": "you", + "bar": "far" +} diff --git a/Tests/Fixtures/yaml-test-suite/54T7/in.yaml b/Tests/Fixtures/yaml-test-suite/54T7/in.yaml new file mode 100644 index 0000000..fc448be --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/54T7/in.yaml @@ -0,0 +1 @@ +{foo: you, bar: far} diff --git a/Tests/Fixtures/yaml-test-suite/565N/in.json b/Tests/Fixtures/yaml-test-suite/565N/in.json new file mode 100644 index 0000000..4b6d817 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/565N/in.json @@ -0,0 +1,5 @@ +{ + "canonical": "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=", + "generic": "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\nOTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\n+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\nAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=\n", + "description": "The binary value above is a tiny arrow encoded as a gif image." +} diff --git a/Tests/Fixtures/yaml-test-suite/565N/in.yaml b/Tests/Fixtures/yaml-test-suite/565N/in.yaml new file mode 100644 index 0000000..dcdb16f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/565N/in.yaml @@ -0,0 +1,12 @@ +canonical: !!binary "\ + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" +generic: !!binary | + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= +description: + The binary value above is a tiny arrow encoded as a gif image. diff --git a/Tests/Fixtures/yaml-test-suite/58MP/in.json b/Tests/Fixtures/yaml-test-suite/58MP/in.json new file mode 100644 index 0000000..a6ef103 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/58MP/in.json @@ -0,0 +1,3 @@ +{ + "x": ":x" +} diff --git a/Tests/Fixtures/yaml-test-suite/58MP/in.yaml b/Tests/Fixtures/yaml-test-suite/58MP/in.yaml new file mode 100644 index 0000000..21d0ff9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/58MP/in.yaml @@ -0,0 +1 @@ +{x: :x} diff --git a/Tests/Fixtures/yaml-test-suite/5BVJ/in.json b/Tests/Fixtures/yaml-test-suite/5BVJ/in.json new file mode 100644 index 0000000..a150c17 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5BVJ/in.json @@ -0,0 +1,4 @@ +{ + "literal": "some\ntext\n", + "folded": "some text\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml b/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml new file mode 100644 index 0000000..934726c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml @@ -0,0 +1,6 @@ +literal: | + some + text +folded: > + some + text diff --git a/Tests/Fixtures/yaml-test-suite/5C5M/in.json b/Tests/Fixtures/yaml-test-suite/5C5M/in.json new file mode 100644 index 0000000..b516097 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5C5M/in.json @@ -0,0 +1,10 @@ +[ + { + "one": "two", + "three": "four" + }, + { + "five": "six", + "seven": "eight" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml b/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml new file mode 100644 index 0000000..0718643 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml @@ -0,0 +1,2 @@ +- { one : two , three: four , } +- {five: six,seven : eight} diff --git a/Tests/Fixtures/yaml-test-suite/5GBF/in.json b/Tests/Fixtures/yaml-test-suite/5GBF/in.json new file mode 100644 index 0000000..41a96a1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5GBF/in.json @@ -0,0 +1,4 @@ +{ + "Folding": "Empty line\nas a line feed", + "Chomping": "Clipped empty lines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml b/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml new file mode 100644 index 0000000..60958d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml @@ -0,0 +1,8 @@ +Folding: + "Empty line + + as a line feed" +Chomping: | + Clipped empty lines + + diff --git a/Tests/Fixtures/yaml-test-suite/5KJE/in.json b/Tests/Fixtures/yaml-test-suite/5KJE/in.json new file mode 100644 index 0000000..c19c46c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5KJE/in.json @@ -0,0 +1,10 @@ +[ + [ + "one", + "two" + ], + [ + "three", + "four" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml b/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml new file mode 100644 index 0000000..cd77480 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml @@ -0,0 +1,2 @@ +- [ one, two, ] +- [three ,four] diff --git a/Tests/Fixtures/yaml-test-suite/5LLU/error b/Tests/Fixtures/yaml-test-suite/5LLU/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml b/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml new file mode 100644 index 0000000..34d30b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml @@ -0,0 +1,5 @@ +block scalar: > + + + + invalid diff --git a/Tests/Fixtures/yaml-test-suite/5MUD/in.json b/Tests/Fixtures/yaml-test-suite/5MUD/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5MUD/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml b/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml new file mode 100644 index 0000000..f0a4e3e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml @@ -0,0 +1,3 @@ +--- +{ "foo" + :bar } diff --git a/Tests/Fixtures/yaml-test-suite/5NYZ/in.json b/Tests/Fixtures/yaml-test-suite/5NYZ/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5NYZ/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml b/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml new file mode 100644 index 0000000..9db0912 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml @@ -0,0 +1,2 @@ +key: # Comment + value diff --git a/Tests/Fixtures/yaml-test-suite/5T43/in.json b/Tests/Fixtures/yaml-test-suite/5T43/in.json new file mode 100644 index 0000000..7eb5fce --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5T43/in.json @@ -0,0 +1,8 @@ +[ + { + "key": "value" + }, + { + "key": ":value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/5T43/in.yaml b/Tests/Fixtures/yaml-test-suite/5T43/in.yaml new file mode 100644 index 0000000..03936e6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5T43/in.yaml @@ -0,0 +1,2 @@ +- { "key":value } +- { "key"::value } diff --git a/Tests/Fixtures/yaml-test-suite/5TRB/error b/Tests/Fixtures/yaml-test-suite/5TRB/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml b/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml new file mode 100644 index 0000000..8f75f6c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml @@ -0,0 +1,4 @@ +--- +" +--- +" diff --git a/Tests/Fixtures/yaml-test-suite/5TYM/in.json b/Tests/Fixtures/yaml-test-suite/5TYM/in.json new file mode 100644 index 0000000..fbdf5d0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TYM/in.json @@ -0,0 +1,2 @@ +"fluorescent" +"green" diff --git a/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml b/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml new file mode 100644 index 0000000..57315a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml @@ -0,0 +1,7 @@ +%TAG !m! !my- +--- # Bulb here +!m!light fluorescent +... +%TAG !m! !my- +--- # Color here +!m!light green diff --git a/Tests/Fixtures/yaml-test-suite/5WE3/in.json b/Tests/Fixtures/yaml-test-suite/5WE3/in.json new file mode 100644 index 0000000..35361a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5WE3/in.json @@ -0,0 +1,7 @@ +{ + "explicit key": null, + "block key\n": [ + "one", + "two" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml b/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml new file mode 100644 index 0000000..cb0cfd0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml @@ -0,0 +1,5 @@ +? explicit key # Empty value +? | + block key +: - one # Explicit compact + - two # block value diff --git a/Tests/Fixtures/yaml-test-suite/652Z/in.json b/Tests/Fixtures/yaml-test-suite/652Z/in.json new file mode 100644 index 0000000..5943efa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/652Z/in.json @@ -0,0 +1,4 @@ +{ + "?foo" : "bar", + "bar" : 42 +} diff --git a/Tests/Fixtures/yaml-test-suite/652Z/in.yaml b/Tests/Fixtures/yaml-test-suite/652Z/in.yaml new file mode 100644 index 0000000..c1a9c38 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/652Z/in.yaml @@ -0,0 +1,3 @@ +{ ?foo: bar, +bar: 42 +} diff --git a/Tests/Fixtures/yaml-test-suite/65WH/in.json b/Tests/Fixtures/yaml-test-suite/65WH/in.json new file mode 100644 index 0000000..de140ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/65WH/in.json @@ -0,0 +1,3 @@ +[ + "foo" +] diff --git a/Tests/Fixtures/yaml-test-suite/65WH/in.yaml b/Tests/Fixtures/yaml-test-suite/65WH/in.yaml new file mode 100644 index 0000000..a4b65cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/65WH/in.yaml @@ -0,0 +1 @@ +- foo diff --git a/Tests/Fixtures/yaml-test-suite/6BCT/in.json b/Tests/Fixtures/yaml-test-suite/6BCT/in.json new file mode 100644 index 0000000..7216337 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6BCT/in.json @@ -0,0 +1,9 @@ +[ + { + "foo": "bar" + }, + [ + "baz", + "baz" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml b/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml new file mode 100644 index 0000000..5f48cf4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml @@ -0,0 +1,3 @@ +- foo: bar +- - baz + - baz diff --git a/Tests/Fixtures/yaml-test-suite/6CA3/in.json b/Tests/Fixtures/yaml-test-suite/6CA3/in.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CA3/in.json @@ -0,0 +1 @@ +[] diff --git a/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml b/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml new file mode 100644 index 0000000..26a80a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml @@ -0,0 +1,2 @@ + [ + ] diff --git a/Tests/Fixtures/yaml-test-suite/6CK3/in.json b/Tests/Fixtures/yaml-test-suite/6CK3/in.json new file mode 100644 index 0000000..cdaf9b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CK3/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + "baz" +] diff --git a/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml b/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml new file mode 100644 index 0000000..70365f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml @@ -0,0 +1,5 @@ +%TAG !e! tag:example.com,2000:app/ +--- +- !local foo +- !!str bar +- !e!tag%21 baz diff --git a/Tests/Fixtures/yaml-test-suite/6FWR/in.json b/Tests/Fixtures/yaml-test-suite/6FWR/in.json new file mode 100644 index 0000000..7b0aa63 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6FWR/in.json @@ -0,0 +1 @@ +"ab\n\n \n" diff --git a/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml b/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml new file mode 100644 index 0000000..1ff9bfa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml @@ -0,0 +1,5 @@ +--- |+ + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/6H3V/in.json b/Tests/Fixtures/yaml-test-suite/6H3V/in.json new file mode 100644 index 0000000..030ae9c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6H3V/in.json @@ -0,0 +1,3 @@ +{ + "foo: bar\\": "baz'" +} diff --git a/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml b/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml new file mode 100644 index 0000000..33424c0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml @@ -0,0 +1 @@ +'foo: bar\': baz' diff --git a/Tests/Fixtures/yaml-test-suite/6HB6/in.json b/Tests/Fixtures/yaml-test-suite/6HB6/in.json new file mode 100644 index 0000000..90112cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6HB6/in.json @@ -0,0 +1,10 @@ +{ + "Not indented": { + "By one space": "By four\n spaces\n", + "Flow style": [ + "By two", + "Also by two", + "Still by two" + ] + } +} diff --git a/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml b/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml new file mode 100644 index 0000000..b5496c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml @@ -0,0 +1,12 @@ + # Leading comment line spaces are + # neither content nor indentation. + +Not indented: + By one space: | + By four + spaces + Flow style: [ # Leading spaces + By two, # in flow style + Also by two, # are neither + Still by two # content nor + ] # indentation. diff --git a/Tests/Fixtures/yaml-test-suite/6JQW/in.json b/Tests/Fixtures/yaml-test-suite/6JQW/in.json new file mode 100644 index 0000000..6f981a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JQW/in.json @@ -0,0 +1 @@ +"\\//||\\/||\n// || ||__\n" diff --git a/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml b/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml new file mode 100644 index 0000000..13fb656 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml @@ -0,0 +1,4 @@ +# ASCII Art +--- | + \//||\/|| + // || ||__ diff --git a/Tests/Fixtures/yaml-test-suite/6JTT/error b/Tests/Fixtures/yaml-test-suite/6JTT/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml b/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml new file mode 100644 index 0000000..939a071 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml @@ -0,0 +1,2 @@ +--- +[ [ a, b, c ] diff --git a/Tests/Fixtures/yaml-test-suite/6JWB/in.json b/Tests/Fixtures/yaml-test-suite/6JWB/in.json new file mode 100644 index 0000000..7f20946 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JWB/in.json @@ -0,0 +1,8 @@ +{ + "foo": [ + "a", + { + "key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml b/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml new file mode 100644 index 0000000..7a3e8f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml @@ -0,0 +1,4 @@ +foo: !!seq + - !!str a + - !!map + key: !!str value diff --git a/Tests/Fixtures/yaml-test-suite/6KGN/in.json b/Tests/Fixtures/yaml-test-suite/6KGN/in.json new file mode 100644 index 0000000..32b9bb5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6KGN/in.json @@ -0,0 +1,4 @@ +{ + "a": null, + "b": null +} diff --git a/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml b/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml new file mode 100644 index 0000000..dea985e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml @@ -0,0 +1,3 @@ +--- +a: &anchor +b: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/6LVF/in.json b/Tests/Fixtures/yaml-test-suite/6LVF/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6LVF/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml b/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml new file mode 100644 index 0000000..cedbf23 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml @@ -0,0 +1,3 @@ +%FOO bar baz # Should be ignored + # with a warning. +--- "foo" diff --git a/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml b/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml new file mode 100644 index 0000000..b1490a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml @@ -0,0 +1,3 @@ +? &a a +: &b b +: *a diff --git a/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml b/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml new file mode 100644 index 0000000..5637a1a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml @@ -0,0 +1,7 @@ +--- +? +- a +- b +: +- c +- d diff --git a/Tests/Fixtures/yaml-test-suite/6S55/error b/Tests/Fixtures/yaml-test-suite/6S55/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/6S55/in.yaml b/Tests/Fixtures/yaml-test-suite/6S55/in.yaml new file mode 100644 index 0000000..0b067d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6S55/in.yaml @@ -0,0 +1,4 @@ +key: + - bar + - baz + invalid diff --git a/Tests/Fixtures/yaml-test-suite/6SLA/in.json b/Tests/Fixtures/yaml-test-suite/6SLA/in.json new file mode 100644 index 0000000..b76510f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6SLA/in.json @@ -0,0 +1,4 @@ +{ + "foo\nbar:baz\tx \\$%^&*()x": 23, + "x\\ny:z\\tx $%^&*()x": 24 +} diff --git a/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml b/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml new file mode 100644 index 0000000..5b8cd26 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml @@ -0,0 +1,2 @@ +"foo\nbar:baz\tx \\$%^&*()x": 23 +'x\ny:z\tx $%^&*()x': 24 diff --git a/Tests/Fixtures/yaml-test-suite/6VJK/in.json b/Tests/Fixtures/yaml-test-suite/6VJK/in.json new file mode 100644 index 0000000..d61c429 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6VJK/in.json @@ -0,0 +1 @@ +"Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n" diff --git a/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml b/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml new file mode 100644 index 0000000..80b89a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml @@ -0,0 +1,8 @@ +> + Sammy Sosa completed another + fine season with great stats. + + 63 Home Runs + 0.288 Batting Average + + What a year! diff --git a/Tests/Fixtures/yaml-test-suite/6WLZ/in.json b/Tests/Fixtures/yaml-test-suite/6WLZ/in.json new file mode 100644 index 0000000..f95cbd7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WLZ/in.json @@ -0,0 +1,2 @@ +"bar" +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml b/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml new file mode 100644 index 0000000..fd94164 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml @@ -0,0 +1,8 @@ +# Private +--- +!foo "bar" +... +# Global +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/6WPF/in.json b/Tests/Fixtures/yaml-test-suite/6WPF/in.json new file mode 100644 index 0000000..0fcc9db --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WPF/in.json @@ -0,0 +1 @@ +" foo\nbar\nbaz " diff --git a/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml b/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml new file mode 100644 index 0000000..aed6e4b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml @@ -0,0 +1,8 @@ +--- +" + foo + + bar + + baz +" diff --git a/Tests/Fixtures/yaml-test-suite/6XDY/in.json b/Tests/Fixtures/yaml-test-suite/6XDY/in.json new file mode 100644 index 0000000..c1e4b6c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6XDY/in.json @@ -0,0 +1,2 @@ +null +null diff --git a/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml b/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml @@ -0,0 +1,2 @@ +--- +--- diff --git a/Tests/Fixtures/yaml-test-suite/6ZKB/in.json b/Tests/Fixtures/yaml-test-suite/6ZKB/in.json new file mode 100644 index 0000000..b637cb9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6ZKB/in.json @@ -0,0 +1,5 @@ +"Document" +null +{ + "matches %": 20 +} diff --git a/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml b/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml new file mode 100644 index 0000000..52bd345 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml @@ -0,0 +1,7 @@ +Document +--- +# Empty +... +%YAML 1.2 +--- +matches %: 20 diff --git a/Tests/Fixtures/yaml-test-suite/735Y/in.json b/Tests/Fixtures/yaml-test-suite/735Y/in.json new file mode 100644 index 0000000..0cca491 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/735Y/in.json @@ -0,0 +1,7 @@ +[ + "flow in block", + "Block scalar\n", + { + "foo": "bar" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/735Y/in.yaml b/Tests/Fixtures/yaml-test-suite/735Y/in.yaml new file mode 100644 index 0000000..a3f13ae --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/735Y/in.yaml @@ -0,0 +1,6 @@ +- + "flow in block" +- > + Block scalar +- !!map # Block collection + foo : bar diff --git a/Tests/Fixtures/yaml-test-suite/74H7/in.json b/Tests/Fixtures/yaml-test-suite/74H7/in.json new file mode 100644 index 0000000..5890c51 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/74H7/in.json @@ -0,0 +1,7 @@ +{ + "a": "b", + "c": 42, + "e": "f", + "g": "h", + "23": false +} diff --git a/Tests/Fixtures/yaml-test-suite/74H7/in.yaml b/Tests/Fixtures/yaml-test-suite/74H7/in.yaml new file mode 100644 index 0000000..dd1a8fa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/74H7/in.yaml @@ -0,0 +1,5 @@ +!!str a: b +c: !!int 42 +e: !!str f +g: h +!!str 23: !!bool false diff --git a/Tests/Fixtures/yaml-test-suite/753E/in.json b/Tests/Fixtures/yaml-test-suite/753E/in.json new file mode 100644 index 0000000..cb5537d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/753E/in.json @@ -0,0 +1 @@ +"ab" diff --git a/Tests/Fixtures/yaml-test-suite/753E/in.yaml b/Tests/Fixtures/yaml-test-suite/753E/in.yaml new file mode 100644 index 0000000..33a6577 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/753E/in.yaml @@ -0,0 +1,5 @@ +--- |- + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/7A4E/in.json b/Tests/Fixtures/yaml-test-suite/7A4E/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7A4E/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml b/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml new file mode 100644 index 0000000..3d8b76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml @@ -0,0 +1,4 @@ +" 1st non-empty + + 2nd non-empty + 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/7BMT/in.json b/Tests/Fixtures/yaml-test-suite/7BMT/in.json new file mode 100644 index 0000000..7bc2e58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BMT/in.json @@ -0,0 +1,19 @@ +{ + "top1": { + "key1": "one" + }, + "top2": { + "key2": "two" + }, + "top3": { + "key3": "three" + }, + "top4": { + "key4": "four" + }, + "top5": { + "key5": "five" + }, + "top6": "six", + "top7": "seven" +} diff --git a/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml b/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml new file mode 100644 index 0000000..6d66011 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml @@ -0,0 +1,15 @@ +--- +top1: &node1 + &k1 key1: one +top2: &node2 # comment + key2: two +top3: + &k3 key3: three +top4: &node4 + &k4 key4: four +top5: &node5 + key5: five +top6: &val6 + six +top7: + &val7 seven diff --git a/Tests/Fixtures/yaml-test-suite/7BUB/in.json b/Tests/Fixtures/yaml-test-suite/7BUB/in.json new file mode 100644 index 0000000..d32dc2f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BUB/in.json @@ -0,0 +1,10 @@ +{ + "hr": [ + "Mark McGwire", + "Sammy Sosa" + ], + "rbi": [ + "Sammy Sosa", + "Ken Griffey" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml b/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml new file mode 100644 index 0000000..61808f6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml @@ -0,0 +1,8 @@ +--- +hr: + - Mark McGwire + # Following node labeled SS + - &SS Sammy Sosa +rbi: + - *SS # Subsequent occurrence + - Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/7FWL/in.json b/Tests/Fixtures/yaml-test-suite/7FWL/in.json new file mode 100644 index 0000000..c9f7a94 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7FWL/in.json @@ -0,0 +1,3 @@ +{ + "foo": "baz" +} diff --git a/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml b/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml new file mode 100644 index 0000000..8e51f52 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml @@ -0,0 +1,2 @@ +! foo : + ! baz diff --git a/Tests/Fixtures/yaml-test-suite/7MNF/error b/Tests/Fixtures/yaml-test-suite/7MNF/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml b/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml new file mode 100644 index 0000000..39bce10 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml @@ -0,0 +1,3 @@ +top1: + key1: val1 +top2 diff --git a/Tests/Fixtures/yaml-test-suite/7T8X/in.json b/Tests/Fixtures/yaml-test-suite/7T8X/in.json new file mode 100644 index 0000000..f52f875 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7T8X/in.json @@ -0,0 +1 @@ +"\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast line\n" diff --git a/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml b/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml new file mode 100644 index 0000000..992dd76 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml @@ -0,0 +1,16 @@ +> + + folded + line + + next + line + * bullet + + * list + * lines + + last + line + +# Comment diff --git a/Tests/Fixtures/yaml-test-suite/7TMG/in.json b/Tests/Fixtures/yaml-test-suite/7TMG/in.json new file mode 100644 index 0000000..064aca0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7TMG/in.json @@ -0,0 +1,4 @@ +[ + "word1", + "word2" +] diff --git a/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml b/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml new file mode 100644 index 0000000..312847e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml @@ -0,0 +1,4 @@ +--- +[ word1 +# comment +, word2] diff --git a/Tests/Fixtures/yaml-test-suite/7W2P/in.json b/Tests/Fixtures/yaml-test-suite/7W2P/in.json new file mode 100644 index 0000000..a08ddaa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7W2P/in.json @@ -0,0 +1,5 @@ +{ + "a": null, + "b": null, + "c": null +} diff --git a/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml b/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml new file mode 100644 index 0000000..e36dcc9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml @@ -0,0 +1,3 @@ +? a +? b +c: diff --git a/Tests/Fixtures/yaml-test-suite/7Z25/in.json b/Tests/Fixtures/yaml-test-suite/7Z25/in.json new file mode 100644 index 0000000..ca729cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7Z25/in.json @@ -0,0 +1,4 @@ +"scalar1" +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml b/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml new file mode 100644 index 0000000..6964944 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml @@ -0,0 +1,4 @@ +--- +scalar1 +... +key: value diff --git a/Tests/Fixtures/yaml-test-suite/82AN/in.json b/Tests/Fixtures/yaml-test-suite/82AN/in.json new file mode 100644 index 0000000..62a7caa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/82AN/in.json @@ -0,0 +1 @@ +"---word1 word2" diff --git a/Tests/Fixtures/yaml-test-suite/82AN/in.yaml b/Tests/Fixtures/yaml-test-suite/82AN/in.yaml new file mode 100644 index 0000000..fffaf58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/82AN/in.yaml @@ -0,0 +1,2 @@ +---word1 +word2 diff --git a/Tests/Fixtures/yaml-test-suite/87E4/in.json b/Tests/Fixtures/yaml-test-suite/87E4/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/87E4/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/87E4/in.yaml b/Tests/Fixtures/yaml-test-suite/87E4/in.yaml new file mode 100644 index 0000000..f1baf58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/87E4/in.yaml @@ -0,0 +1,3 @@ +'implicit block key' : [ + 'implicit flow key' : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/8CWC/in.json b/Tests/Fixtures/yaml-test-suite/8CWC/in.json new file mode 100644 index 0000000..64ee5f2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8CWC/in.json @@ -0,0 +1,3 @@ +{ + "key ends with two colons::": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml b/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml new file mode 100644 index 0000000..79d518d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml @@ -0,0 +1,2 @@ +--- +key ends with two colons::: value diff --git a/Tests/Fixtures/yaml-test-suite/8G76/in.json b/Tests/Fixtures/yaml-test-suite/8G76/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/8G76/in.yaml b/Tests/Fixtures/yaml-test-suite/8G76/in.yaml new file mode 100644 index 0000000..e5f1a84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8G76/in.yaml @@ -0,0 +1,4 @@ + # Comment + + + diff --git a/Tests/Fixtures/yaml-test-suite/8KB6/in.json b/Tests/Fixtures/yaml-test-suite/8KB6/in.json new file mode 100644 index 0000000..2716276 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8KB6/in.json @@ -0,0 +1,10 @@ +[ + { + "single line": null, + "a": "b" + }, + { + "multi line": null, + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml b/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml new file mode 100644 index 0000000..9167fd6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml @@ -0,0 +1,4 @@ +--- +- { single line, a: b} +- { multi + line, a: b} diff --git a/Tests/Fixtures/yaml-test-suite/8MK2/in.json b/Tests/Fixtures/yaml-test-suite/8MK2/in.json new file mode 100644 index 0000000..231f150 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8MK2/in.json @@ -0,0 +1 @@ +"a" diff --git a/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml b/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml new file mode 100644 index 0000000..eae54f7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml @@ -0,0 +1 @@ +! a diff --git a/Tests/Fixtures/yaml-test-suite/8QBE/in.json b/Tests/Fixtures/yaml-test-suite/8QBE/in.json new file mode 100644 index 0000000..53a2601 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8QBE/in.json @@ -0,0 +1,6 @@ +{ + "key": [ + "item1", + "item2" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml b/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml new file mode 100644 index 0000000..6b937f8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml @@ -0,0 +1,3 @@ +key: + - item1 + - item2 diff --git a/Tests/Fixtures/yaml-test-suite/8UDB/in.json b/Tests/Fixtures/yaml-test-suite/8UDB/in.json new file mode 100644 index 0000000..763236f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8UDB/in.json @@ -0,0 +1,11 @@ +[ + "double quoted", + "single quoted", + "plain text", + [ + "nested" + ], + { + "single": "pair" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml b/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml new file mode 100644 index 0000000..6327116 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml @@ -0,0 +1,8 @@ +[ +"double + quoted", 'single + quoted', +plain + text, [ nested ], +single: pair, +] diff --git a/Tests/Fixtures/yaml-test-suite/8XYN/in.json b/Tests/Fixtures/yaml-test-suite/8XYN/in.json new file mode 100644 index 0000000..85f4c1a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8XYN/in.json @@ -0,0 +1,3 @@ +[ + "unicode anchor" +] diff --git a/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml b/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml new file mode 100644 index 0000000..72c1c37 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml @@ -0,0 +1,2 @@ +--- +- &😁 unicode anchor diff --git a/Tests/Fixtures/yaml-test-suite/93JH/in.json b/Tests/Fixtures/yaml-test-suite/93JH/in.json new file mode 100644 index 0000000..ab22c39 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93JH/in.json @@ -0,0 +1,9 @@ +[ + { + "key": "value", + "key2": "value2" + }, + { + "key3": "value3" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/93JH/in.yaml b/Tests/Fixtures/yaml-test-suite/93JH/in.yaml new file mode 100644 index 0000000..30c49a3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93JH/in.yaml @@ -0,0 +1,4 @@ + - key: value + key2: value2 + - + key3: value3 diff --git a/Tests/Fixtures/yaml-test-suite/93WF/in.json b/Tests/Fixtures/yaml-test-suite/93WF/in.json new file mode 100644 index 0000000..9c6ce92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93WF/in.json @@ -0,0 +1 @@ +"trimmed\n\n\nas space" diff --git a/Tests/Fixtures/yaml-test-suite/93WF/in.yaml b/Tests/Fixtures/yaml-test-suite/93WF/in.yaml new file mode 100644 index 0000000..938ee98 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93WF/in.yaml @@ -0,0 +1,7 @@ +--- >- + trimmed + + + + as + space diff --git a/Tests/Fixtures/yaml-test-suite/96L6/in.json b/Tests/Fixtures/yaml-test-suite/96L6/in.json new file mode 100644 index 0000000..f427bc2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96L6/in.json @@ -0,0 +1 @@ +"Mark McGwire's year was crippled by a knee injury.\n" diff --git a/Tests/Fixtures/yaml-test-suite/96L6/in.yaml b/Tests/Fixtures/yaml-test-suite/96L6/in.yaml new file mode 100644 index 0000000..fb4ed4a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96L6/in.yaml @@ -0,0 +1,4 @@ +--- > + Mark McGwire's + year was crippled + by a knee injury. diff --git a/Tests/Fixtures/yaml-test-suite/96NN/00/in.json b/Tests/Fixtures/yaml-test-suite/96NN/00/in.json new file mode 100644 index 0000000..0adc1e5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/00/in.json @@ -0,0 +1 @@ +{"foo":"\tbar"} diff --git a/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml b/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml new file mode 100644 index 0000000..de7acab --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml @@ -0,0 +1,2 @@ +foo: |- + bar diff --git a/Tests/Fixtures/yaml-test-suite/96NN/01/in.json b/Tests/Fixtures/yaml-test-suite/96NN/01/in.json new file mode 100644 index 0000000..0adc1e5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/01/in.json @@ -0,0 +1 @@ +{"foo":"\tbar"} diff --git a/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml b/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml new file mode 100644 index 0000000..28703ea --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml @@ -0,0 +1,2 @@ +foo: |- + bar \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/98YD/in.json b/Tests/Fixtures/yaml-test-suite/98YD/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/98YD/in.yaml b/Tests/Fixtures/yaml-test-suite/98YD/in.yaml new file mode 100644 index 0000000..62524c0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/98YD/in.yaml @@ -0,0 +1 @@ +# Comment only. diff --git a/Tests/Fixtures/yaml-test-suite/9BXH/in.json b/Tests/Fixtures/yaml-test-suite/9BXH/in.json new file mode 100644 index 0000000..2716276 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9BXH/in.json @@ -0,0 +1,10 @@ +[ + { + "single line": null, + "a": "b" + }, + { + "multi line": null, + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml b/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml new file mode 100644 index 0000000..c007827 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml @@ -0,0 +1,4 @@ +--- +- { "single line", a: b} +- { "multi + line", a: b} diff --git a/Tests/Fixtures/yaml-test-suite/9CWY/error b/Tests/Fixtures/yaml-test-suite/9CWY/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml b/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml new file mode 100644 index 0000000..b84657b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml @@ -0,0 +1,4 @@ +key: + - item1 + - item2 +invalid diff --git a/Tests/Fixtures/yaml-test-suite/9DXL/in.json b/Tests/Fixtures/yaml-test-suite/9DXL/in.json new file mode 100644 index 0000000..e211160 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9DXL/in.json @@ -0,0 +1,7 @@ +{ + "Mapping": "Document" +} +null +{ + "matches %": 20 +} diff --git a/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml b/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml new file mode 100644 index 0000000..7ec08e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml @@ -0,0 +1,7 @@ +Mapping: Document +--- +# Empty +... +%YAML 1.2 +--- +matches %: 20 diff --git a/Tests/Fixtures/yaml-test-suite/9FMG/in.json b/Tests/Fixtures/yaml-test-suite/9FMG/in.json new file mode 100644 index 0000000..b521c7f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9FMG/in.json @@ -0,0 +1,11 @@ +{ + "a": { + "b": { + "c": "d" + }, + "e": { + "f": "g" + } + }, + "h": "i" +} diff --git a/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml b/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml new file mode 100644 index 0000000..25f0447 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml @@ -0,0 +1,6 @@ +a: + b: + c: d + e: + f: g +h: i diff --git a/Tests/Fixtures/yaml-test-suite/9HCY/error b/Tests/Fixtures/yaml-test-suite/9HCY/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml b/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml new file mode 100644 index 0000000..dc49d9c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml @@ -0,0 +1,4 @@ +!foo "bar" +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/9J7A/in.json b/Tests/Fixtures/yaml-test-suite/9J7A/in.json new file mode 100644 index 0000000..faa9156 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9J7A/in.json @@ -0,0 +1,5 @@ +{ + "foo": { + "bar": "baz" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml b/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml new file mode 100644 index 0000000..4ee8d9d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml @@ -0,0 +1,2 @@ +foo: + bar: baz diff --git a/Tests/Fixtures/yaml-test-suite/9KAX/in.json b/Tests/Fixtures/yaml-test-suite/9KAX/in.json new file mode 100644 index 0000000..6056492 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KAX/in.json @@ -0,0 +1,17 @@ +"scalar1" +"scalar2" +"scalar3" +{ + "key5": "value4" +} +{ + "a6": 1, + "b6": 2 +} +{ + "key8": "value7" +} +{ + "key10": "value9" +} +"value11" diff --git a/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml b/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml new file mode 100644 index 0000000..0ade841 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml @@ -0,0 +1,26 @@ +--- +&a1 +!!str +scalar1 +--- +!!str +&a2 +scalar2 +--- +&a3 +!!str scalar3 +--- +&a4 !!map +&a5 !!str key5: value4 +--- +a6: 1 +&anchor6 b6: 2 +--- +!!map +&a8 !!str key8: value7 +--- +!!map +!!str &a10 key10: value9 +--- +!!str &a11 +value11 diff --git a/Tests/Fixtures/yaml-test-suite/9KBC/error b/Tests/Fixtures/yaml-test-suite/9KBC/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml b/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml new file mode 100644 index 0000000..f2c1654 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml @@ -0,0 +1,2 @@ +--- key1: value1 + key2: value2 diff --git a/Tests/Fixtures/yaml-test-suite/9MMA/error b/Tests/Fixtures/yaml-test-suite/9MMA/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml b/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml new file mode 100644 index 0000000..6e9a0bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml @@ -0,0 +1 @@ +%YAML 1.2 diff --git a/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml b/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml new file mode 100644 index 0000000..b9fe5e1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml @@ -0,0 +1,3 @@ +- [ YAML : separate ] +- [ "JSON like":adjacent ] +- [ {JSON: like}:adjacent ] diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json new file mode 100644 index 0000000..ed697c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json @@ -0,0 +1 @@ +"a ...x b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml new file mode 100644 index 0000000..8f86a1b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml @@ -0,0 +1,3 @@ +--- "a +...x +b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/error b/Tests/Fixtures/yaml-test-suite/9MQT/01/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json new file mode 100644 index 0000000..ed697c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json @@ -0,0 +1 @@ +"a ...x b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml new file mode 100644 index 0000000..ed9388b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml @@ -0,0 +1,3 @@ +--- "a +... x +b" diff --git a/Tests/Fixtures/yaml-test-suite/9SA2/in.json b/Tests/Fixtures/yaml-test-suite/9SA2/in.json new file mode 100644 index 0000000..d214d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SA2/in.json @@ -0,0 +1,8 @@ +[ + { + "single line": "value" + }, + { + "multi line": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml b/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml new file mode 100644 index 0000000..b79124b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml @@ -0,0 +1,4 @@ +--- +- { "single line": value} +- { "multi + line": value} diff --git a/Tests/Fixtures/yaml-test-suite/9SHH/in.json b/Tests/Fixtures/yaml-test-suite/9SHH/in.json new file mode 100644 index 0000000..4e274b0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SHH/in.json @@ -0,0 +1,4 @@ +{ + "single": "text", + "double": "text" +} diff --git a/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml b/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml new file mode 100644 index 0000000..04ebf69 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml @@ -0,0 +1,2 @@ +single: 'text' +double: "text" diff --git a/Tests/Fixtures/yaml-test-suite/9TFX/in.json b/Tests/Fixtures/yaml-test-suite/9TFX/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9TFX/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml b/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml new file mode 100644 index 0000000..5afb3f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml @@ -0,0 +1,5 @@ +--- +" 1st non-empty + + 2nd non-empty + 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/9U5K/in.json b/Tests/Fixtures/yaml-test-suite/9U5K/in.json new file mode 100644 index 0000000..f932159 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9U5K/in.json @@ -0,0 +1,14 @@ +[ + { + "item": "Super Hoop", + "quantity": 1 + }, + { + "item": "Basketball", + "quantity": 4 + }, + { + "item": "Big Shoes", + "quantity": 1 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml b/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml new file mode 100644 index 0000000..63a8ed7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml @@ -0,0 +1,8 @@ +--- +# Products purchased +- item : Super Hoop + quantity: 1 +- item : Basketball + quantity: 4 +- item : Big Shoes + quantity: 1 diff --git a/Tests/Fixtures/yaml-test-suite/9WXW/in.json b/Tests/Fixtures/yaml-test-suite/9WXW/in.json new file mode 100644 index 0000000..f95cbd7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9WXW/in.json @@ -0,0 +1,2 @@ +"bar" +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml b/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml new file mode 100644 index 0000000..d79f04e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml @@ -0,0 +1,7 @@ +# Private +!foo "bar" +... +# Global +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/9YRD/in.json b/Tests/Fixtures/yaml-test-suite/9YRD/in.json new file mode 100644 index 0000000..a565abc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9YRD/in.json @@ -0,0 +1 @@ +"a b c d\ne" diff --git a/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml b/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml new file mode 100644 index 0000000..8a21b02 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml @@ -0,0 +1,6 @@ +a +b + c +d + +e diff --git a/Tests/Fixtures/yaml-test-suite/A2M4/in.json b/Tests/Fixtures/yaml-test-suite/A2M4/in.json new file mode 100644 index 0000000..848d9f6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A2M4/in.json @@ -0,0 +1,9 @@ +{ + "a": [ + "b", + [ + "c", + "d" + ] + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml b/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml new file mode 100644 index 0000000..ac0d970 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml @@ -0,0 +1,4 @@ +? a +: - b + - - c + - d diff --git a/Tests/Fixtures/yaml-test-suite/A6F9/in.json b/Tests/Fixtures/yaml-test-suite/A6F9/in.json new file mode 100644 index 0000000..50e1907 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A6F9/in.json @@ -0,0 +1,5 @@ +{ + "strip": "text", + "clip": "text\n", + "keep": "text\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml b/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml new file mode 100644 index 0000000..fa6190f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml @@ -0,0 +1,6 @@ +strip: |- + text +clip: | + text +keep: |+ + text diff --git a/Tests/Fixtures/yaml-test-suite/A984/in.json b/Tests/Fixtures/yaml-test-suite/A984/in.json new file mode 100644 index 0000000..50ad5bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A984/in.json @@ -0,0 +1,4 @@ +{ + "a": "b c", + "d": "e f" +} diff --git a/Tests/Fixtures/yaml-test-suite/A984/in.yaml b/Tests/Fixtures/yaml-test-suite/A984/in.yaml new file mode 100644 index 0000000..62fe04a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A984/in.yaml @@ -0,0 +1,5 @@ +a: b + c +d: + e + f diff --git a/Tests/Fixtures/yaml-test-suite/AB8U/in.json b/Tests/Fixtures/yaml-test-suite/AB8U/in.json new file mode 100644 index 0000000..ea0a643 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AB8U/in.json @@ -0,0 +1,3 @@ +[ + "single multiline - sequence entry" +] diff --git a/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml b/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml new file mode 100644 index 0000000..abf6cec --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml @@ -0,0 +1,2 @@ +- single multiline + - sequence entry diff --git a/Tests/Fixtures/yaml-test-suite/AVM7/in.json b/Tests/Fixtures/yaml-test-suite/AVM7/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/AVM7/in.yaml b/Tests/Fixtures/yaml-test-suite/AVM7/in.yaml new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/AZ63/in.json b/Tests/Fixtures/yaml-test-suite/AZ63/in.json new file mode 100644 index 0000000..d8d5d7e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZ63/in.json @@ -0,0 +1,7 @@ +{ + "one": [ + 2, + 3 + ], + "four": 5 +} diff --git a/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml b/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml new file mode 100644 index 0000000..80eda20 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml @@ -0,0 +1,4 @@ +one: +- 2 +- 3 +four: 5 diff --git a/Tests/Fixtures/yaml-test-suite/AZW3/in.json b/Tests/Fixtures/yaml-test-suite/AZW3/in.json new file mode 100644 index 0000000..0e62301 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZW3/in.json @@ -0,0 +1,8 @@ +[ + { + "bla\"keks": "foo" + }, + { + "bla]keks": "foo" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml b/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml new file mode 100644 index 0000000..c9219e9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml @@ -0,0 +1,2 @@ +- bla"keks: foo +- bla]keks: foo diff --git a/Tests/Fixtures/yaml-test-suite/B3HG/in.json b/Tests/Fixtures/yaml-test-suite/B3HG/in.json new file mode 100644 index 0000000..d5cf354 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B3HG/in.json @@ -0,0 +1 @@ +"folded text\n" diff --git a/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml b/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml new file mode 100644 index 0000000..668490c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml @@ -0,0 +1,5 @@ +--- > + folded + text + + diff --git a/Tests/Fixtures/yaml-test-suite/B63P/error b/Tests/Fixtures/yaml-test-suite/B63P/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/B63P/in.yaml b/Tests/Fixtures/yaml-test-suite/B63P/in.yaml new file mode 100644 index 0000000..142134e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B63P/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 +... diff --git a/Tests/Fixtures/yaml-test-suite/BD7L/error b/Tests/Fixtures/yaml-test-suite/BD7L/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml b/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml new file mode 100644 index 0000000..30799d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml @@ -0,0 +1,3 @@ +- item1 +- item2 +invalid: x diff --git a/Tests/Fixtures/yaml-test-suite/BEC7/in.json b/Tests/Fixtures/yaml-test-suite/BEC7/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BEC7/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml b/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml new file mode 100644 index 0000000..fb55215 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.3 # Attempt parsing + # with a warning +--- +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/BS4K/error b/Tests/Fixtures/yaml-test-suite/BS4K/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml b/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml new file mode 100644 index 0000000..5ddae76 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml @@ -0,0 +1,2 @@ +word1 # comment +word2 diff --git a/Tests/Fixtures/yaml-test-suite/BU8L/in.json b/Tests/Fixtures/yaml-test-suite/BU8L/in.json new file mode 100644 index 0000000..1609d45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BU8L/in.json @@ -0,0 +1,5 @@ +{ + "key": { + "a": "b" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml b/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml new file mode 100644 index 0000000..35d556d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml @@ -0,0 +1,3 @@ +key: &anchor + !!map + a: b diff --git a/Tests/Fixtures/yaml-test-suite/C2DT/in.json b/Tests/Fixtures/yaml-test-suite/C2DT/in.json new file mode 100644 index 0000000..e522f08 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2DT/in.json @@ -0,0 +1,5 @@ +{ + "adjacent": "value", + "readable": "value", + "empty": null +} diff --git a/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml b/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml new file mode 100644 index 0000000..7fc069c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml @@ -0,0 +1,5 @@ +{ +"adjacent":value, +"readable": value, +"empty": +} diff --git a/Tests/Fixtures/yaml-test-suite/C2SP/error b/Tests/Fixtures/yaml-test-suite/C2SP/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml b/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml new file mode 100644 index 0000000..bb88dde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml @@ -0,0 +1,2 @@ +[23 +]: 42 diff --git a/Tests/Fixtures/yaml-test-suite/C4HZ/in.json b/Tests/Fixtures/yaml-test-suite/C4HZ/in.json new file mode 100644 index 0000000..de484e0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C4HZ/in.json @@ -0,0 +1,27 @@ +[ + { + "center": { + "x": 73, + "y": 129 + }, + "radius": 7 + }, + { + "start": { + "x": 73, + "y": 129 + }, + "finish": { + "x": 89, + "y": 102 + } + }, + { + "start": { + "x": 73, + "y": 129 + }, + "color": 16772795, + "text": "Pretty vector drawing." + } +] diff --git a/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml b/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml new file mode 100644 index 0000000..1180757 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml @@ -0,0 +1,14 @@ +%TAG ! tag:clarkevans.com,2002: +--- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle +- !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 +- !line + start: *ORIGIN + finish: { x: 89, y: 102 } +- !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. diff --git a/Tests/Fixtures/yaml-test-suite/CC74/in.json b/Tests/Fixtures/yaml-test-suite/CC74/in.json new file mode 100644 index 0000000..196e587 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CC74/in.json @@ -0,0 +1 @@ +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/CC74/in.yaml b/Tests/Fixtures/yaml-test-suite/CC74/in.yaml new file mode 100644 index 0000000..690f138 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CC74/in.yaml @@ -0,0 +1,3 @@ +%TAG !e! tag:example.com,2000:app/ +--- +!e!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml b/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml new file mode 100644 index 0000000..503d73a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml @@ -0,0 +1,2 @@ +- [ : empty key ] +- [: another empty key] diff --git a/Tests/Fixtures/yaml-test-suite/CML9/error b/Tests/Fixtures/yaml-test-suite/CML9/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/CML9/in.yaml b/Tests/Fixtures/yaml-test-suite/CML9/in.yaml new file mode 100644 index 0000000..b2c39a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CML9/in.yaml @@ -0,0 +1,3 @@ +key: [ word1 +# xxx + word2 ] diff --git a/Tests/Fixtures/yaml-test-suite/CN3R/in.json b/Tests/Fixtures/yaml-test-suite/CN3R/in.json new file mode 100644 index 0000000..28eb29e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CN3R/in.json @@ -0,0 +1,14 @@ +[ + { + "a": "b" + }, + { + "c": "d" + }, + { + "e": "f" + }, + { + "g": "h" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml b/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml new file mode 100644 index 0000000..8345dfc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml @@ -0,0 +1,6 @@ +&flowseq [ + a: b, + &c c: d, + { &e e: f }, + &g { g: h } +] diff --git a/Tests/Fixtures/yaml-test-suite/CPZ3/in.json b/Tests/Fixtures/yaml-test-suite/CPZ3/in.json new file mode 100644 index 0000000..977fceb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CPZ3/in.json @@ -0,0 +1,3 @@ +{ + "tab": "\tstring" +} diff --git a/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml b/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml new file mode 100644 index 0000000..082400b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml @@ -0,0 +1,2 @@ +--- +tab: "\tstring" diff --git a/Tests/Fixtures/yaml-test-suite/CQ3W/error b/Tests/Fixtures/yaml-test-suite/CQ3W/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml b/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml new file mode 100644 index 0000000..c8d7e45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml @@ -0,0 +1,2 @@ +--- +key: "missing closing quote diff --git a/Tests/Fixtures/yaml-test-suite/CT4Q/in.json b/Tests/Fixtures/yaml-test-suite/CT4Q/in.json new file mode 100644 index 0000000..6342cb2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CT4Q/in.json @@ -0,0 +1,5 @@ +[ + { + "foo bar": "baz" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml b/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml new file mode 100644 index 0000000..19dc4f5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml @@ -0,0 +1,4 @@ +[ +? foo + bar : baz +] diff --git a/Tests/Fixtures/yaml-test-suite/CUP7/in.json b/Tests/Fixtures/yaml-test-suite/CUP7/in.json new file mode 100644 index 0000000..55f1478 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CUP7/in.json @@ -0,0 +1,4 @@ +{ + "anchored": "value", + "alias": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml b/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml new file mode 100644 index 0000000..7a1f9b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml @@ -0,0 +1,2 @@ +anchored: !local &anchor value +alias: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/D83L/in.json b/Tests/Fixtures/yaml-test-suite/D83L/in.json new file mode 100644 index 0000000..179dcbd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D83L/in.json @@ -0,0 +1,4 @@ +[ + "explicit indent and chomp", + "chomp and explicit indent" +] diff --git a/Tests/Fixtures/yaml-test-suite/D83L/in.yaml b/Tests/Fixtures/yaml-test-suite/D83L/in.yaml new file mode 100644 index 0000000..3d603d1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D83L/in.yaml @@ -0,0 +1,4 @@ +- |2- + explicit indent and chomp +- |-2 + chomp and explicit indent diff --git a/Tests/Fixtures/yaml-test-suite/D88J/in.json b/Tests/Fixtures/yaml-test-suite/D88J/in.json new file mode 100644 index 0000000..93f2131 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D88J/in.json @@ -0,0 +1,6 @@ +{ + "a": [ + "b", + "c" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/D88J/in.yaml b/Tests/Fixtures/yaml-test-suite/D88J/in.yaml new file mode 100644 index 0000000..8238fdf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D88J/in.yaml @@ -0,0 +1 @@ +a: [b, c] diff --git a/Tests/Fixtures/yaml-test-suite/D9TU/in.json b/Tests/Fixtures/yaml-test-suite/D9TU/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D9TU/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml b/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml new file mode 100644 index 0000000..20e9ff3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml @@ -0,0 +1 @@ +foo: bar diff --git a/Tests/Fixtures/yaml-test-suite/DBG4/in.json b/Tests/Fixtures/yaml-test-suite/DBG4/in.json new file mode 100644 index 0000000..a90aeee --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DBG4/in.json @@ -0,0 +1,14 @@ +[ + "::vector", + ": - ()", + "Up, up, and away!", + -123, + "http://example.com/foo#bar", + [ + "::vector", + ": - ()", + "Up, up and away!", + -123, + "http://example.com/foo#bar" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml b/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml new file mode 100644 index 0000000..7ed369f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml @@ -0,0 +1,12 @@ +# Outside flow collection: +- ::vector +- ": - ()" +- Up, up, and away! +- -123 +- http://example.com/foo#bar +# Inside flow collection: +- [ ::vector, + ": - ()", + "Up, up and away!", + -123, + http://example.com/foo#bar ] diff --git a/Tests/Fixtures/yaml-test-suite/DE56/00/in.json b/Tests/Fixtures/yaml-test-suite/DE56/00/in.json new file mode 100644 index 0000000..03179cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/00/in.json @@ -0,0 +1 @@ +"1 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml new file mode 100644 index 0000000..a235094 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml @@ -0,0 +1,2 @@ +"1 trailing\t + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/01/in.json b/Tests/Fixtures/yaml-test-suite/DE56/01/in.json new file mode 100644 index 0000000..ade6481 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/01/in.json @@ -0,0 +1 @@ +"2 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml new file mode 100644 index 0000000..006f12a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml @@ -0,0 +1,2 @@ +"2 trailing\t + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/02/in.json b/Tests/Fixtures/yaml-test-suite/DE56/02/in.json new file mode 100644 index 0000000..611058e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/02/in.json @@ -0,0 +1 @@ +"3 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml new file mode 100644 index 0000000..b06a045 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml @@ -0,0 +1,2 @@ +"3 trailing\ + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/03/in.json b/Tests/Fixtures/yaml-test-suite/DE56/03/in.json new file mode 100644 index 0000000..388f4e4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/03/in.json @@ -0,0 +1 @@ +"4 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml new file mode 100644 index 0000000..13694b0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml @@ -0,0 +1,2 @@ +"4 trailing\ + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/04/in.json b/Tests/Fixtures/yaml-test-suite/DE56/04/in.json new file mode 100644 index 0000000..c83327d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/04/in.json @@ -0,0 +1 @@ +"5 trailing tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml new file mode 100644 index 0000000..5f8ff1c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml @@ -0,0 +1,2 @@ +"5 trailing + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/05/in.json b/Tests/Fixtures/yaml-test-suite/DE56/05/in.json new file mode 100644 index 0000000..56138d1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/05/in.json @@ -0,0 +1 @@ +"6 trailing tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml new file mode 100644 index 0000000..f25a33a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml @@ -0,0 +1,2 @@ +"6 trailing + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml b/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml new file mode 100644 index 0000000..cb84a99 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml @@ -0,0 +1,5 @@ +{ +? explicit: entry, +implicit: entry, +? +} diff --git a/Tests/Fixtures/yaml-test-suite/DHP8/in.json b/Tests/Fixtures/yaml-test-suite/DHP8/in.json new file mode 100644 index 0000000..1866413 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DHP8/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + 42 +] diff --git a/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml b/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml new file mode 100644 index 0000000..bf34158 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml @@ -0,0 +1 @@ +[foo, bar, 42] diff --git a/Tests/Fixtures/yaml-test-suite/DK3J/in.json b/Tests/Fixtures/yaml-test-suite/DK3J/in.json new file mode 100644 index 0000000..ce8e836 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK3J/in.json @@ -0,0 +1 @@ +"line1 # no comment line3\n" diff --git a/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml b/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml new file mode 100644 index 0000000..ffb9aeb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml @@ -0,0 +1,4 @@ +--- > +line1 +# no comment +line3 diff --git a/Tests/Fixtures/yaml-test-suite/DK4H/error b/Tests/Fixtures/yaml-test-suite/DK4H/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml b/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml new file mode 100644 index 0000000..c7a31c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml @@ -0,0 +1,3 @@ +--- +[ key + : value ] diff --git a/Tests/Fixtures/yaml-test-suite/DK95/00/in.json b/Tests/Fixtures/yaml-test-suite/DK95/00/in.json new file mode 100644 index 0000000..d7b2eeb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/00/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml new file mode 100644 index 0000000..420d531 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml @@ -0,0 +1,2 @@ +foo: + bar diff --git a/Tests/Fixtures/yaml-test-suite/DK95/02/in.json b/Tests/Fixtures/yaml-test-suite/DK95/02/in.json new file mode 100644 index 0000000..f86c8d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/02/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar baz" +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml new file mode 100644 index 0000000..422933c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml @@ -0,0 +1,2 @@ +foo: "bar + baz" diff --git a/Tests/Fixtures/yaml-test-suite/DK95/03/in.json b/Tests/Fixtures/yaml-test-suite/DK95/03/in.json new file mode 100644 index 0000000..31ce888 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/03/in.json @@ -0,0 +1,3 @@ +{ + "foo" : 1 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml new file mode 100644 index 0000000..87cf24e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml @@ -0,0 +1,2 @@ + +foo: 1 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/04/in.json b/Tests/Fixtures/yaml-test-suite/DK95/04/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/04/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml new file mode 100644 index 0000000..077ba0b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml @@ -0,0 +1,3 @@ +foo: 1 + +bar: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/05/in.json b/Tests/Fixtures/yaml-test-suite/DK95/05/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/05/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml new file mode 100644 index 0000000..fea60bc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml @@ -0,0 +1,3 @@ +foo: 1 + +bar: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/error b/Tests/Fixtures/yaml-test-suite/DK95/06/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/in.json b/Tests/Fixtures/yaml-test-suite/DK95/06/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/06/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml new file mode 100644 index 0000000..6bda856 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml @@ -0,0 +1,3 @@ +foo: + a: 1 + b: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/07/in.json b/Tests/Fixtures/yaml-test-suite/DK95/07/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/07/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml new file mode 100644 index 0000000..9ad1ed2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml @@ -0,0 +1,3 @@ +%YAML 1.2 + +--- diff --git a/Tests/Fixtures/yaml-test-suite/DK95/08/in.json b/Tests/Fixtures/yaml-test-suite/DK95/08/in.json new file mode 100644 index 0000000..0dc83aa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/08/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar baz \t \t " +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml new file mode 100644 index 0000000..1ae7eca --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml @@ -0,0 +1,2 @@ +foo: "bar + baz " diff --git a/Tests/Fixtures/yaml-test-suite/DMG6/error b/Tests/Fixtures/yaml-test-suite/DMG6/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml b/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml new file mode 100644 index 0000000..148a693 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml @@ -0,0 +1,3 @@ +key: + ok: 1 + wrong: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DWX9/in.json b/Tests/Fixtures/yaml-test-suite/DWX9/in.json new file mode 100644 index 0000000..6383f8d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DWX9/in.json @@ -0,0 +1 @@ +"\n\nliteral\n \n\ntext\n" diff --git a/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml b/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml new file mode 100644 index 0000000..9d537cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml @@ -0,0 +1,9 @@ +| + + + literal + + + text + + # Comment diff --git a/Tests/Fixtures/yaml-test-suite/E76Z/in.json b/Tests/Fixtures/yaml-test-suite/E76Z/in.json new file mode 100644 index 0000000..a9b2dde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/E76Z/in.json @@ -0,0 +1,4 @@ +{ + "a": "b", + "b": "a" +} diff --git a/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml b/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml new file mode 100644 index 0000000..756ff71 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml @@ -0,0 +1,2 @@ +&a a: &b b +*b : *a diff --git a/Tests/Fixtures/yaml-test-suite/EB22/error b/Tests/Fixtures/yaml-test-suite/EB22/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/EB22/in.yaml b/Tests/Fixtures/yaml-test-suite/EB22/in.yaml new file mode 100644 index 0000000..2c7dd1d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EB22/in.yaml @@ -0,0 +1,5 @@ +--- +scalar1 # comment +%YAML 1.2 +--- +scalar2 diff --git a/Tests/Fixtures/yaml-test-suite/EHF6/in.json b/Tests/Fixtures/yaml-test-suite/EHF6/in.json new file mode 100644 index 0000000..d5d1744 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EHF6/in.json @@ -0,0 +1,6 @@ +{ + "k": [ + "a", + "b" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml b/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml new file mode 100644 index 0000000..f69ccde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml @@ -0,0 +1,4 @@ +!!map { + k: !!seq + [ a, !!str b] +} diff --git a/Tests/Fixtures/yaml-test-suite/EW3V/error b/Tests/Fixtures/yaml-test-suite/EW3V/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml b/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml new file mode 100644 index 0000000..433a5f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml @@ -0,0 +1,2 @@ +k1: v1 + k2: v2 diff --git a/Tests/Fixtures/yaml-test-suite/EX5H/in.json b/Tests/Fixtures/yaml-test-suite/EX5H/in.json new file mode 100644 index 0000000..a565abc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EX5H/in.json @@ -0,0 +1 @@ +"a b c d\ne" diff --git a/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml b/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml new file mode 100644 index 0000000..0e75a65 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml @@ -0,0 +1,7 @@ +--- +a +b + c +d + +e diff --git a/Tests/Fixtures/yaml-test-suite/EXG3/in.json b/Tests/Fixtures/yaml-test-suite/EXG3/in.json new file mode 100644 index 0000000..62a7caa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EXG3/in.json @@ -0,0 +1 @@ +"---word1 word2" diff --git a/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml b/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml new file mode 100644 index 0000000..8ebd5d2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml @@ -0,0 +1,3 @@ +--- +---word1 +word2 diff --git a/Tests/Fixtures/yaml-test-suite/F2C7/in.json b/Tests/Fixtures/yaml-test-suite/F2C7/in.json new file mode 100644 index 0000000..2c185ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F2C7/in.json @@ -0,0 +1,6 @@ +[ + "a", + 2, + 4, + "d" +] diff --git a/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml b/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml new file mode 100644 index 0000000..8574f95 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml @@ -0,0 +1,4 @@ + - &a !!str a + - !!int 2 + - !!int &c 4 + - &d d diff --git a/Tests/Fixtures/yaml-test-suite/F3CP/in.json b/Tests/Fixtures/yaml-test-suite/F3CP/in.json new file mode 100644 index 0000000..a134c8f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F3CP/in.json @@ -0,0 +1,12 @@ +{ + "a": [ + "b", + "c", + { + "d": [ + "e", + "f" + ] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml b/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml new file mode 100644 index 0000000..04e631b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml @@ -0,0 +1,2 @@ +--- +{ a: [b, c, { d: [e, f] } ] } diff --git a/Tests/Fixtures/yaml-test-suite/F6MC/in.json b/Tests/Fixtures/yaml-test-suite/F6MC/in.json new file mode 100644 index 0000000..72be982 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F6MC/in.json @@ -0,0 +1,4 @@ +{ + "a": " more indented\nregular\n", + "b": "\n\n more indented\nregular\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml b/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml new file mode 100644 index 0000000..08c530d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml @@ -0,0 +1,9 @@ +--- +a: >2 + more indented + regular +b: >2 + + + more indented + regular diff --git a/Tests/Fixtures/yaml-test-suite/F8F9/in.json b/Tests/Fixtures/yaml-test-suite/F8F9/in.json new file mode 100644 index 0000000..4dfaa4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F8F9/in.json @@ -0,0 +1,5 @@ +{ + "strip": "# text", + "clip": "# text\n", + "keep": "# text\n\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml b/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml new file mode 100644 index 0000000..32fa08f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml @@ -0,0 +1,19 @@ + # Strip + # Comments: +strip: |- + # text + + # Clip + # comments: + +clip: | + # text + + # Keep + # comments: + +keep: |+ + # text + + # Trail + # comments. diff --git a/Tests/Fixtures/yaml-test-suite/FBC9/in.json b/Tests/Fixtures/yaml-test-suite/FBC9/in.json new file mode 100644 index 0000000..bb25484 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FBC9/in.json @@ -0,0 +1,6 @@ +{ + "safe": "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~", + "safe question mark": "?foo", + "safe colon": ":foo", + "safe dash": "-foo" +} diff --git a/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml b/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml new file mode 100644 index 0000000..ed2516d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml @@ -0,0 +1,5 @@ +safe: a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ + !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ +safe question mark: ?foo +safe colon: :foo +safe dash: -foo diff --git a/Tests/Fixtures/yaml-test-suite/FP8R/in.json b/Tests/Fixtures/yaml-test-suite/FP8R/in.json new file mode 100644 index 0000000..15c6a36 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FP8R/in.json @@ -0,0 +1 @@ +"line1 line2 line3\n" diff --git a/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml b/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml new file mode 100644 index 0000000..b4e414d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml @@ -0,0 +1,4 @@ +--- > +line1 +line2 +line3 diff --git a/Tests/Fixtures/yaml-test-suite/FQ7F/in.json b/Tests/Fixtures/yaml-test-suite/FQ7F/in.json new file mode 100644 index 0000000..5f8dd7d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FQ7F/in.json @@ -0,0 +1,5 @@ +[ + "Mark McGwire", + "Sammy Sosa", + "Ken Griffey" +] diff --git a/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml b/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml new file mode 100644 index 0000000..d12e671 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml @@ -0,0 +1,3 @@ +- Mark McGwire +- Sammy Sosa +- Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml b/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml new file mode 100644 index 0000000..f46900d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml @@ -0,0 +1,4 @@ +{ + ? foo :, + : bar, +} diff --git a/Tests/Fixtures/yaml-test-suite/FTA2/in.json b/Tests/Fixtures/yaml-test-suite/FTA2/in.json new file mode 100644 index 0000000..0ede90f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FTA2/in.json @@ -0,0 +1,3 @@ +[ + "a" +] diff --git a/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml b/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml new file mode 100644 index 0000000..e90e1c7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml @@ -0,0 +1,2 @@ +--- &sequence +- a diff --git a/Tests/Fixtures/yaml-test-suite/FUP4/in.json b/Tests/Fixtures/yaml-test-suite/FUP4/in.json new file mode 100644 index 0000000..8b0e4ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FUP4/in.json @@ -0,0 +1,7 @@ +[ + "a", + [ + "b", + "c" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml b/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml new file mode 100644 index 0000000..5f76a2e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml @@ -0,0 +1 @@ +[a, [b, c]] diff --git a/Tests/Fixtures/yaml-test-suite/G4RS/in.json b/Tests/Fixtures/yaml-test-suite/G4RS/in.json new file mode 100644 index 0000000..9b2b73a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G4RS/in.json @@ -0,0 +1,8 @@ +{ + "unicode": "Sosa did fine.☺", + "control": "\b1998\t1999\t2000\n", + "hex esc": "\r\n is \r\n", + "single": "\"Howdy!\" he cried.", + "quoted": " # Not a 'comment'.", + "tie-fighter": "|\\-*-/|" +} diff --git a/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml b/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml new file mode 100644 index 0000000..c5c2a18 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml @@ -0,0 +1,7 @@ +unicode: "Sosa did fine.\u263A" +control: "\b1998\t1999\t2000\n" +hex esc: "\x0d\x0a is \r\n" + +single: '"Howdy!" he cried.' +quoted: ' # Not a ''comment''.' +tie-fighter: '|\-*-/|' diff --git a/Tests/Fixtures/yaml-test-suite/G7JE/error b/Tests/Fixtures/yaml-test-suite/G7JE/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml b/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml new file mode 100644 index 0000000..e0a85bf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml @@ -0,0 +1,3 @@ +a\nb: 1 +c + d: 1 diff --git a/Tests/Fixtures/yaml-test-suite/G992/in.json b/Tests/Fixtures/yaml-test-suite/G992/in.json new file mode 100644 index 0000000..d5cf354 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G992/in.json @@ -0,0 +1 @@ +"folded text\n" diff --git a/Tests/Fixtures/yaml-test-suite/G992/in.yaml b/Tests/Fixtures/yaml-test-suite/G992/in.yaml new file mode 100644 index 0000000..078fbc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G992/in.yaml @@ -0,0 +1,5 @@ +> + folded + text + + diff --git a/Tests/Fixtures/yaml-test-suite/G9HC/error b/Tests/Fixtures/yaml-test-suite/G9HC/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml b/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml new file mode 100644 index 0000000..8525992 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml @@ -0,0 +1,5 @@ +--- +seq: +&anchor +- a +- b diff --git a/Tests/Fixtures/yaml-test-suite/GDY7/error b/Tests/Fixtures/yaml-test-suite/GDY7/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml b/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml new file mode 100644 index 0000000..ac493b7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml @@ -0,0 +1,2 @@ +key: value +this is #not a: key diff --git a/Tests/Fixtures/yaml-test-suite/GH63/in.json b/Tests/Fixtures/yaml-test-suite/GH63/in.json new file mode 100644 index 0000000..649f5e4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GH63/in.json @@ -0,0 +1,4 @@ +{ + "a": 1.3, + "fifteen": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/GH63/in.yaml b/Tests/Fixtures/yaml-test-suite/GH63/in.yaml new file mode 100644 index 0000000..e54cd41 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GH63/in.yaml @@ -0,0 +1,3 @@ +? a +: 1.3 +fifteen: d diff --git a/Tests/Fixtures/yaml-test-suite/GT5M/error b/Tests/Fixtures/yaml-test-suite/GT5M/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml b/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml new file mode 100644 index 0000000..d641a43 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml @@ -0,0 +1,3 @@ +- item1 +&node +- item2 diff --git a/Tests/Fixtures/yaml-test-suite/H2RW/in.json b/Tests/Fixtures/yaml-test-suite/H2RW/in.json new file mode 100644 index 0000000..6a308c5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H2RW/in.json @@ -0,0 +1,5 @@ +{ + "foo": 1, + "bar": 2, + "text": "a\n \nb\n\nc\n\nd\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml b/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml new file mode 100644 index 0000000..4987de2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml @@ -0,0 +1,12 @@ +foo: 1 + +bar: 2 + +text: | + a + + b + + c + + d diff --git a/Tests/Fixtures/yaml-test-suite/H3Z8/in.json b/Tests/Fixtures/yaml-test-suite/H3Z8/in.json new file mode 100644 index 0000000..52e666b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H3Z8/in.json @@ -0,0 +1,3 @@ +{ + "wanted": "love ♥ and peace ☮" +} diff --git a/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml b/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml new file mode 100644 index 0000000..3cf0d46 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml @@ -0,0 +1,2 @@ +--- +wanted: love ♥ and peace ☮ diff --git a/Tests/Fixtures/yaml-test-suite/H7TQ/error b/Tests/Fixtures/yaml-test-suite/H7TQ/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml b/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml new file mode 100644 index 0000000..79aadcd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 foo +--- diff --git a/Tests/Fixtures/yaml-test-suite/HM87/00/in.json b/Tests/Fixtures/yaml-test-suite/HM87/00/in.json new file mode 100644 index 0000000..9959ccb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/00/in.json @@ -0,0 +1,3 @@ +[ + ":x" +] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml b/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml new file mode 100644 index 0000000..7b8d05b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml @@ -0,0 +1 @@ +[:x] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/01/in.json b/Tests/Fixtures/yaml-test-suite/HM87/01/in.json new file mode 100644 index 0000000..8150f2c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/01/in.json @@ -0,0 +1,3 @@ +[ + "?x" +] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml b/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml new file mode 100644 index 0000000..d52c931 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml @@ -0,0 +1 @@ +[?x] diff --git a/Tests/Fixtures/yaml-test-suite/HMK4/in.json b/Tests/Fixtures/yaml-test-suite/HMK4/in.json new file mode 100644 index 0000000..e1887b5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMK4/in.json @@ -0,0 +1,5 @@ +{ + "name": "Mark McGwire", + "accomplishment": "Mark set a major league home run record in 1998.\n", + "stats": "65 Home Runs\n0.278 Batting Average\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml b/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml new file mode 100644 index 0000000..9f66d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml @@ -0,0 +1,7 @@ +name: Mark McGwire +accomplishment: > + Mark set a major league + home run record in 1998. +stats: | + 65 Home Runs + 0.278 Batting Average diff --git a/Tests/Fixtures/yaml-test-suite/HMQ5/in.json b/Tests/Fixtures/yaml-test-suite/HMQ5/in.json new file mode 100644 index 0000000..510c6a7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMQ5/in.json @@ -0,0 +1,4 @@ +{ + "foo": "bar", + "baz": "foo" +} diff --git a/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml b/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml new file mode 100644 index 0000000..66d75f3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml @@ -0,0 +1,3 @@ +!!str &a1 "foo": + !!str bar +&a2 baz : *a1 diff --git a/Tests/Fixtures/yaml-test-suite/HS5T/in.json b/Tests/Fixtures/yaml-test-suite/HS5T/in.json new file mode 100644 index 0000000..2dc1d4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HS5T/in.json @@ -0,0 +1 @@ +"1st non-empty\n2nd non-empty 3rd non-empty" diff --git a/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml b/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml new file mode 100644 index 0000000..0499250 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml @@ -0,0 +1,4 @@ +1st non-empty + + 2nd non-empty + 3rd non-empty diff --git a/Tests/Fixtures/yaml-test-suite/HWV9/in.json b/Tests/Fixtures/yaml-test-suite/HWV9/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml b/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml new file mode 100644 index 0000000..eb1ae45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml @@ -0,0 +1 @@ +... diff --git a/Tests/Fixtures/yaml-test-suite/J5UC/in.json b/Tests/Fixtures/yaml-test-suite/J5UC/in.json new file mode 100644 index 0000000..1d2cefe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J5UC/in.json @@ -0,0 +1,5 @@ +{ + "foo": "blue", + "bar": "arrr", + "baz": "jazz" +} diff --git a/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml b/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml new file mode 100644 index 0000000..a40b18e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml @@ -0,0 +1,3 @@ +foo: blue +bar: arrr +baz: jazz diff --git a/Tests/Fixtures/yaml-test-suite/J7PZ/in.json b/Tests/Fixtures/yaml-test-suite/J7PZ/in.json new file mode 100644 index 0000000..c5ae8a0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7PZ/in.json @@ -0,0 +1,11 @@ +[ + { + "Mark McGwire": 65 + }, + { + "Sammy Sosa": 63 + }, + { + "Ken Griffy": 58 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml b/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml new file mode 100644 index 0000000..25692f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml @@ -0,0 +1,11 @@ +# The !!omap tag is one of the optional types +# introduced for YAML 1.1. In 1.2, it is not +# part of the standard tags and should not be +# enabled by default. +# Ordered maps are represented as +# A sequence of mappings, with +# each mapping having one key +--- !!omap +- Mark McGwire: 65 +- Sammy Sosa: 63 +- Ken Griffy: 58 diff --git a/Tests/Fixtures/yaml-test-suite/J7VC/in.json b/Tests/Fixtures/yaml-test-suite/J7VC/in.json new file mode 100644 index 0000000..d880c33 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7VC/in.json @@ -0,0 +1,4 @@ +{ + "one": 2, + "three": 4 +} diff --git a/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml b/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml new file mode 100644 index 0000000..47956a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml @@ -0,0 +1,4 @@ +one: 2 + + +three: 4 diff --git a/Tests/Fixtures/yaml-test-suite/J9HZ/in.json b/Tests/Fixtures/yaml-test-suite/J9HZ/in.json new file mode 100644 index 0000000..d32dc2f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J9HZ/in.json @@ -0,0 +1,10 @@ +{ + "hr": [ + "Mark McGwire", + "Sammy Sosa" + ], + "rbi": [ + "Sammy Sosa", + "Ken Griffey" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml b/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml new file mode 100644 index 0000000..e264180 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml @@ -0,0 +1,8 @@ +--- +hr: # 1998 hr ranking + - Mark McGwire + - Sammy Sosa +rbi: + # 1998 rbi ranking + - Sammy Sosa + - Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json new file mode 100644 index 0000000..c1d057c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json @@ -0,0 +1,3 @@ +[ + "\n\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml new file mode 100644 index 0000000..be41666 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml @@ -0,0 +1,3 @@ +- |+ + + diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json new file mode 100644 index 0000000..a075745 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json @@ -0,0 +1,3 @@ +[ + "\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml new file mode 100644 index 0000000..522e56c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml @@ -0,0 +1,2 @@ +- |+ + diff --git a/Tests/Fixtures/yaml-test-suite/JHB9/in.json b/Tests/Fixtures/yaml-test-suite/JHB9/in.json new file mode 100644 index 0000000..4a96ef4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JHB9/in.json @@ -0,0 +1,9 @@ +[ + "Mark McGwire", + "Sammy Sosa", + "Ken Griffey" +] +[ + "Chicago Cubs", + "St Louis Cardinals" +] diff --git a/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml b/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml new file mode 100644 index 0000000..bc711d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml @@ -0,0 +1,10 @@ +# Ranking of 1998 home runs +--- +- Mark McGwire +- Sammy Sosa +- Ken Griffey + +# Team ranking +--- +- Chicago Cubs +- St Louis Cardinals diff --git a/Tests/Fixtures/yaml-test-suite/JQ4R/in.json b/Tests/Fixtures/yaml-test-suite/JQ4R/in.json new file mode 100644 index 0000000..ad5c054 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JQ4R/in.json @@ -0,0 +1,8 @@ +{ + "block sequence": [ + "one", + { + "two": "three" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml b/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml new file mode 100644 index 0000000..d2f2ccf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml @@ -0,0 +1,3 @@ +block sequence: + - one + - two : three diff --git a/Tests/Fixtures/yaml-test-suite/JR7V/in.json b/Tests/Fixtures/yaml-test-suite/JR7V/in.json new file mode 100644 index 0000000..eba7f7f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JR7V/in.json @@ -0,0 +1,22 @@ +[ + "a?string", + "another ? string", + { + "key": "value?" + }, + [ + "a?string" + ], + [ + "another ? string" + ], + { + "key": "value?" + }, + { + "key": "value?" + }, + { + "key?": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml b/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml new file mode 100644 index 0000000..c41e47c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml @@ -0,0 +1,8 @@ +- a?string +- another ? string +- key: value? +- [a?string] +- [another ? string] +- {key: value? } +- {key: value?} +- {key?: value } diff --git a/Tests/Fixtures/yaml-test-suite/JS2J/in.json b/Tests/Fixtures/yaml-test-suite/JS2J/in.json new file mode 100644 index 0000000..4b838cf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JS2J/in.json @@ -0,0 +1,4 @@ +{ + "First occurrence": "Value", + "Second occurrence": "Value" +} diff --git a/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml b/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml new file mode 100644 index 0000000..600d179 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml @@ -0,0 +1,2 @@ +First occurrence: &anchor Value +Second occurrence: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/JTV5/in.json b/Tests/Fixtures/yaml-test-suite/JTV5/in.json new file mode 100644 index 0000000..fbccf11 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JTV5/in.json @@ -0,0 +1,4 @@ +{ + "a true": "null d", + "e 42": null +} diff --git a/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml b/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml new file mode 100644 index 0000000..247a8cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml @@ -0,0 +1,6 @@ +? a + true +: null + d +? e + 42 diff --git a/Tests/Fixtures/yaml-test-suite/K3WX/in.json b/Tests/Fixtures/yaml-test-suite/K3WX/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K3WX/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml b/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml new file mode 100644 index 0000000..14d2753 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml @@ -0,0 +1,3 @@ +--- +{ "foo" # comment + :bar } diff --git a/Tests/Fixtures/yaml-test-suite/K4SU/in.json b/Tests/Fixtures/yaml-test-suite/K4SU/in.json new file mode 100644 index 0000000..1866413 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K4SU/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + 42 +] diff --git a/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml b/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml new file mode 100644 index 0000000..5fae9f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml @@ -0,0 +1,3 @@ +- foo +- bar +- 42 diff --git a/Tests/Fixtures/yaml-test-suite/K527/in.json b/Tests/Fixtures/yaml-test-suite/K527/in.json new file mode 100644 index 0000000..9c6ce92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K527/in.json @@ -0,0 +1 @@ +"trimmed\n\n\nas space" diff --git a/Tests/Fixtures/yaml-test-suite/K527/in.yaml b/Tests/Fixtures/yaml-test-suite/K527/in.yaml new file mode 100644 index 0000000..1c5090d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K527/in.yaml @@ -0,0 +1,7 @@ +>- + trimmed + + + + as + space diff --git a/Tests/Fixtures/yaml-test-suite/K54U/in.json b/Tests/Fixtures/yaml-test-suite/K54U/in.json new file mode 100644 index 0000000..6dbc311 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K54U/in.json @@ -0,0 +1 @@ +"scalar" diff --git a/Tests/Fixtures/yaml-test-suite/K54U/in.yaml b/Tests/Fixtures/yaml-test-suite/K54U/in.yaml new file mode 100644 index 0000000..8171dcc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K54U/in.yaml @@ -0,0 +1 @@ +--- scalar diff --git a/Tests/Fixtures/yaml-test-suite/K858/in.json b/Tests/Fixtures/yaml-test-suite/K858/in.json new file mode 100644 index 0000000..d63b700 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K858/in.json @@ -0,0 +1,5 @@ +{ + "strip": "", + "clip": "", + "keep": "\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/K858/in.yaml b/Tests/Fixtures/yaml-test-suite/K858/in.yaml new file mode 100644 index 0000000..de0b64b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K858/in.yaml @@ -0,0 +1,6 @@ +strip: >- + +clip: > + +keep: |+ + diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json new file mode 100644 index 0000000..f0458e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json @@ -0,0 +1 @@ +"1 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml new file mode 100644 index 0000000..f0458e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml @@ -0,0 +1 @@ +"1 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json new file mode 100644 index 0000000..0bd18c3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json @@ -0,0 +1 @@ +"2 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml new file mode 100644 index 0000000..e32b715 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml @@ -0,0 +1 @@ +"2 inline\ tab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json new file mode 100644 index 0000000..a7a0e0f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json @@ -0,0 +1 @@ +"3 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml new file mode 100644 index 0000000..ef3075f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml @@ -0,0 +1 @@ +"3 inline tab" diff --git a/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml b/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml new file mode 100644 index 0000000..872966f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml @@ -0,0 +1,16 @@ +complex1: + ? - a +complex2: + ? - a + : b +complex3: + ? - a + : > + b +complex4: + ? > + a + : +complex5: + ? - a + : - b diff --git a/Tests/Fixtures/yaml-test-suite/KMK3/in.json b/Tests/Fixtures/yaml-test-suite/KMK3/in.json new file mode 100644 index 0000000..b7cf07e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KMK3/in.json @@ -0,0 +1,6 @@ +{ + "foo": { + "bar": 1 + }, + "baz": 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml b/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml new file mode 100644 index 0000000..32d2114 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml @@ -0,0 +1,3 @@ +foo: + bar: 1 +baz: 2 diff --git a/Tests/Fixtures/yaml-test-suite/KS4U/error b/Tests/Fixtures/yaml-test-suite/KS4U/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml b/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml new file mode 100644 index 0000000..a77ca09 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml @@ -0,0 +1,5 @@ +--- +[ +sequence item +] +invalid item diff --git a/Tests/Fixtures/yaml-test-suite/KSS4/in.json b/Tests/Fixtures/yaml-test-suite/KSS4/in.json new file mode 100644 index 0000000..19747c7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KSS4/in.json @@ -0,0 +1,2 @@ +"quoted string" +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml b/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml new file mode 100644 index 0000000..5cbbe23 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml @@ -0,0 +1,3 @@ +--- "quoted +string" +--- &node foo diff --git a/Tests/Fixtures/yaml-test-suite/L24T/00/in.json b/Tests/Fixtures/yaml-test-suite/L24T/00/in.json new file mode 100644 index 0000000..6548965 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/00/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "x\n \n" +} diff --git a/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml b/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml new file mode 100644 index 0000000..6a1854b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml @@ -0,0 +1,3 @@ +foo: | + x + diff --git a/Tests/Fixtures/yaml-test-suite/L24T/01/in.json b/Tests/Fixtures/yaml-test-suite/L24T/01/in.json new file mode 100644 index 0000000..6548965 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/01/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "x\n \n" +} diff --git a/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml b/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml new file mode 100644 index 0000000..b5768af --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml @@ -0,0 +1,3 @@ +foo: | + x + \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/L383/in.json b/Tests/Fixtures/yaml-test-suite/L383/in.json new file mode 100644 index 0000000..d53e1d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L383/in.json @@ -0,0 +1,2 @@ +"foo" +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/L383/in.yaml b/Tests/Fixtures/yaml-test-suite/L383/in.yaml new file mode 100644 index 0000000..235f249 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L383/in.yaml @@ -0,0 +1,2 @@ +--- foo # comment +--- foo # comment diff --git a/Tests/Fixtures/yaml-test-suite/L94M/in.json b/Tests/Fixtures/yaml-test-suite/L94M/in.json new file mode 100644 index 0000000..07ded62 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L94M/in.json @@ -0,0 +1,4 @@ +{ + "a": 47, + "c": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/L94M/in.yaml b/Tests/Fixtures/yaml-test-suite/L94M/in.yaml new file mode 100644 index 0000000..c5e6ceb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L94M/in.yaml @@ -0,0 +1,4 @@ +? !!str a +: !!int 47 +? c +: !!str d diff --git a/Tests/Fixtures/yaml-test-suite/L9U5/in.json b/Tests/Fixtures/yaml-test-suite/L9U5/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L9U5/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml b/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml new file mode 100644 index 0000000..fd57f65 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml @@ -0,0 +1,3 @@ +implicit block key : [ + implicit flow key : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/LE5A/in.json b/Tests/Fixtures/yaml-test-suite/LE5A/in.json new file mode 100644 index 0000000..fc128b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LE5A/in.json @@ -0,0 +1,7 @@ +[ + "a", + "b", + "c", + "c", + "" +] diff --git a/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml b/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml new file mode 100644 index 0000000..db4007f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml @@ -0,0 +1,5 @@ +- !!str "a" +- 'b' +- &anchor "c" +- *anchor +- !!str diff --git a/Tests/Fixtures/yaml-test-suite/LHL4/error b/Tests/Fixtures/yaml-test-suite/LHL4/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml b/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml new file mode 100644 index 0000000..3d0ecf2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml @@ -0,0 +1,2 @@ +--- +!invalid{}tag scalar diff --git a/Tests/Fixtures/yaml-test-suite/LP6E/in.json b/Tests/Fixtures/yaml-test-suite/LP6E/in.json new file mode 100644 index 0000000..178c43c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LP6E/in.json @@ -0,0 +1,13 @@ +[ + [ + "a", + "b", + "c" + ], + { + "a": "b", + "c": "d", + "e": "f" + }, + [] +] diff --git a/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml b/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml new file mode 100644 index 0000000..3a60909 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml @@ -0,0 +1,6 @@ +- [a, b , c ] +- { "a" : b + , c : 'd' , + e : "f" + } +- [ ] diff --git a/Tests/Fixtures/yaml-test-suite/LQZ7/in.json b/Tests/Fixtures/yaml-test-suite/LQZ7/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LQZ7/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml b/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml new file mode 100644 index 0000000..1b7a550 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml @@ -0,0 +1,3 @@ +"implicit block key" : [ + "implicit flow key" : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/M29M/in.json b/Tests/Fixtures/yaml-test-suite/M29M/in.json new file mode 100644 index 0000000..093e6e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M29M/in.json @@ -0,0 +1,3 @@ +{ + "a": "ab\n\ncd\nef\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/M29M/in.yaml b/Tests/Fixtures/yaml-test-suite/M29M/in.yaml new file mode 100644 index 0000000..d472650 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M29M/in.yaml @@ -0,0 +1,8 @@ +a: | + ab + + cd + ef + + +... diff --git a/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml b/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml new file mode 100644 index 0000000..82c9ffa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml @@ -0,0 +1 @@ +- ? : x diff --git a/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml b/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml new file mode 100644 index 0000000..a786266 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml @@ -0,0 +1 @@ +? []: x diff --git a/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml b/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml new file mode 100644 index 0000000..9123ce2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml @@ -0,0 +1,9 @@ +? - Detroit Tigers + - Chicago cubs +: + - 2001-07-23 + +? [ New York Yankees, + Atlanta Braves ] +: [ 2001-07-02, 2001-08-12, + 2001-08-14 ] diff --git a/Tests/Fixtures/yaml-test-suite/M6YH/in.json b/Tests/Fixtures/yaml-test-suite/M6YH/in.json new file mode 100644 index 0000000..8e9ddf6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M6YH/in.json @@ -0,0 +1,9 @@ +[ + "x\n", + { + "foo" : "bar" + }, + [ + 42 + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml b/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml new file mode 100644 index 0000000..d8468d7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml @@ -0,0 +1,6 @@ +- | + x +- + foo: bar +- + - 42 diff --git a/Tests/Fixtures/yaml-test-suite/M7NX/in.json b/Tests/Fixtures/yaml-test-suite/M7NX/in.json new file mode 100644 index 0000000..a134c8f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M7NX/in.json @@ -0,0 +1,12 @@ +{ + "a": [ + "b", + "c", + { + "d": [ + "e", + "f" + ] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml b/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml new file mode 100644 index 0000000..d8f46c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml @@ -0,0 +1,8 @@ +--- +{ + a: [ + b, c, { + d: [e, f] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/M9B4/in.json b/Tests/Fixtures/yaml-test-suite/M9B4/in.json new file mode 100644 index 0000000..2e190c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M9B4/in.json @@ -0,0 +1 @@ +"literal\n\ttext\n" diff --git a/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml b/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml new file mode 100644 index 0000000..31f9966 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml @@ -0,0 +1,5 @@ +| + literal + text + + diff --git a/Tests/Fixtures/yaml-test-suite/MJS9/in.json b/Tests/Fixtures/yaml-test-suite/MJS9/in.json new file mode 100644 index 0000000..9dd9b03 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MJS9/in.json @@ -0,0 +1 @@ +"foo \n\n\t bar\n\nbaz\n" diff --git a/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml b/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml new file mode 100644 index 0000000..0896cc6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml @@ -0,0 +1,6 @@ +> + foo + + bar + + baz diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/00/error b/Tests/Fixtures/yaml-test-suite/MUS6/00/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml new file mode 100644 index 0000000..bb08497 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1#... +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/01/error b/Tests/Fixtures/yaml-test-suite/MUS6/01/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml new file mode 100644 index 0000000..a919837 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.2 +--- +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml new file mode 100644 index 0000000..168723f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml new file mode 100644 index 0000000..c05cfdf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml new file mode 100644 index 0000000..4fb8480 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 # comment +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml new file mode 100644 index 0000000..134cd49 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml @@ -0,0 +1,2 @@ +%YAM 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml new file mode 100644 index 0000000..2ae8800 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml @@ -0,0 +1,2 @@ +%YAMLL 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MXS3/in.json b/Tests/Fixtures/yaml-test-suite/MXS3/in.json new file mode 100644 index 0000000..d107517 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MXS3/in.json @@ -0,0 +1,5 @@ +[ + { + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml b/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml new file mode 100644 index 0000000..9d8ba51 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml @@ -0,0 +1 @@ +- {a: b} diff --git a/Tests/Fixtures/yaml-test-suite/MYW6/in.json b/Tests/Fixtures/yaml-test-suite/MYW6/in.json new file mode 100644 index 0000000..cb5537d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MYW6/in.json @@ -0,0 +1 @@ +"ab" diff --git a/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml b/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml new file mode 100644 index 0000000..1056edd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml @@ -0,0 +1,5 @@ +|- + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/MZX3/in.json b/Tests/Fixtures/yaml-test-suite/MZX3/in.json new file mode 100644 index 0000000..2f701b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MZX3/in.json @@ -0,0 +1,7 @@ +[ + "plain", + "double quoted", + "single quoted", + "block\n", + "plain again" +] diff --git a/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml b/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml new file mode 100644 index 0000000..81acc21 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml @@ -0,0 +1,6 @@ +- plain +- "double quoted" +- 'single quoted' +- > + block +- plain again diff --git a/Tests/Fixtures/yaml-test-suite/N4JP/error b/Tests/Fixtures/yaml-test-suite/N4JP/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml b/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml new file mode 100644 index 0000000..55c3038 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml @@ -0,0 +1,3 @@ +map: + key1: "quoted1" + key2: "bad indentation" diff --git a/Tests/Fixtures/yaml-test-suite/N782/error b/Tests/Fixtures/yaml-test-suite/N782/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/N782/in.yaml b/Tests/Fixtures/yaml-test-suite/N782/in.yaml new file mode 100644 index 0000000..ef7d8c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/N782/in.yaml @@ -0,0 +1,4 @@ +[ +--- , +... +] diff --git a/Tests/Fixtures/yaml-test-suite/NAT4/in.json b/Tests/Fixtures/yaml-test-suite/NAT4/in.json new file mode 100644 index 0000000..f2cc7e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NAT4/in.json @@ -0,0 +1,10 @@ +{ + "a": " ", + "b": " ", + "c": " ", + "d": " ", + "e": "\n", + "f": "\n", + "g": "\n\n", + "h": "\n\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml b/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml new file mode 100644 index 0000000..10d58e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml @@ -0,0 +1,23 @@ +--- +a: ' + ' +b: ' + ' +c: " + " +d: " + " +e: ' + + ' +f: " + + " +g: ' + + + ' +h: " + + + " diff --git a/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml b/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml new file mode 100644 index 0000000..2c0664b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml @@ -0,0 +1,3 @@ +: + + diff --git a/Tests/Fixtures/yaml-test-suite/NJ66/in.json b/Tests/Fixtures/yaml-test-suite/NJ66/in.json new file mode 100644 index 0000000..d214d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NJ66/in.json @@ -0,0 +1,8 @@ +[ + { + "single line": "value" + }, + { + "multi line": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml b/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml new file mode 100644 index 0000000..6ded532 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml @@ -0,0 +1,4 @@ +--- +- { single line: value} +- { multi + line: value} diff --git a/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml b/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml new file mode 100644 index 0000000..30c07c2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml @@ -0,0 +1,13 @@ +--- +key: value +: empty key +--- +{ + key: value, : empty key +} +--- +# empty key and value +: +--- +# empty key and value +{ : } diff --git a/Tests/Fixtures/yaml-test-suite/NP9H/in.json b/Tests/Fixtures/yaml-test-suite/NP9H/in.json new file mode 100644 index 0000000..6ab3718 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NP9H/in.json @@ -0,0 +1 @@ +"folded to a space,\nto a line feed, or \t \tnon-content" diff --git a/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml b/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml new file mode 100644 index 0000000..eda4b49 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml @@ -0,0 +1,5 @@ +"folded +to a space, + +to a line feed, or \ + \ non-content" diff --git a/Tests/Fixtures/yaml-test-suite/P2AD/in.json b/Tests/Fixtures/yaml-test-suite/P2AD/in.json new file mode 100644 index 0000000..4e476d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P2AD/in.json @@ -0,0 +1,6 @@ +[ + "literal\n", + " folded\n", + "keep\n\n", + " strip" +] diff --git a/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml b/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml new file mode 100644 index 0000000..1dbadca --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml @@ -0,0 +1,9 @@ +- | # Empty header↓ + literal +- >1 # Indentation indicator↓ + folded +- |+ # Chomping indicator↓ + keep + +- >1- # Both indicators↓ + strip diff --git a/Tests/Fixtures/yaml-test-suite/P76L/in.json b/Tests/Fixtures/yaml-test-suite/P76L/in.json new file mode 100644 index 0000000..8394b3d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P76L/in.json @@ -0,0 +1 @@ +"1 - 3" diff --git a/Tests/Fixtures/yaml-test-suite/P76L/in.yaml b/Tests/Fixtures/yaml-test-suite/P76L/in.yaml new file mode 100644 index 0000000..7b9d9b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P76L/in.yaml @@ -0,0 +1,3 @@ +%TAG !! tag:example.com,2000:app/ +--- +!!int 1 - 3 # Interval, not integer diff --git a/Tests/Fixtures/yaml-test-suite/P94K/in.json b/Tests/Fixtures/yaml-test-suite/P94K/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P94K/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/P94K/in.yaml b/Tests/Fixtures/yaml-test-suite/P94K/in.yaml new file mode 100644 index 0000000..6776e8a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P94K/in.yaml @@ -0,0 +1,5 @@ +key: # Comment + # lines + value + + diff --git a/Tests/Fixtures/yaml-test-suite/PBJ2/in.json b/Tests/Fixtures/yaml-test-suite/PBJ2/in.json new file mode 100644 index 0000000..7d19aaf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PBJ2/in.json @@ -0,0 +1,12 @@ +{ + "american": [ + "Boston Red Sox", + "Detroit Tigers", + "New York Yankees" + ], + "national": [ + "New York Mets", + "Chicago Cubs", + "Atlanta Braves" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml b/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml new file mode 100644 index 0000000..656d628 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml @@ -0,0 +1,8 @@ +american: + - Boston Red Sox + - Detroit Tigers + - New York Yankees +national: + - New York Mets + - Chicago Cubs + - Atlanta Braves diff --git a/Tests/Fixtures/yaml-test-suite/PRH3/in.json b/Tests/Fixtures/yaml-test-suite/PRH3/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PRH3/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml b/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml new file mode 100644 index 0000000..6dd946e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml @@ -0,0 +1,4 @@ +' 1st non-empty + + 2nd non-empty + 3rd non-empty ' diff --git a/Tests/Fixtures/yaml-test-suite/PUW8/in.json b/Tests/Fixtures/yaml-test-suite/PUW8/in.json new file mode 100644 index 0000000..88bf67f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PUW8/in.json @@ -0,0 +1,4 @@ +{ + "a": "b" +} +null diff --git a/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml b/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml new file mode 100644 index 0000000..6e88f36 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml @@ -0,0 +1,3 @@ +--- +a: b +--- diff --git a/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml b/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml new file mode 100644 index 0000000..23cbbb1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml @@ -0,0 +1,12 @@ +- &a +- a +- + &a : a + b: &b +- + &c : &a +- + ? &d +- + ? &e + : &a diff --git a/Tests/Fixtures/yaml-test-suite/Q4CL/error b/Tests/Fixtures/yaml-test-suite/Q4CL/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml b/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml new file mode 100644 index 0000000..425342a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml @@ -0,0 +1,3 @@ +key1: "quoted1" +key2: "quoted2" trailing content +key3: "quoted3" diff --git a/Tests/Fixtures/yaml-test-suite/Q5MG/in.json b/Tests/Fixtures/yaml-test-suite/Q5MG/in.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q5MG/in.json @@ -0,0 +1 @@ +{} diff --git a/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml b/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml new file mode 100644 index 0000000..db07de0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml @@ -0,0 +1 @@ + {} diff --git a/Tests/Fixtures/yaml-test-suite/Q88A/in.json b/Tests/Fixtures/yaml-test-suite/Q88A/in.json new file mode 100644 index 0000000..d88afe7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q88A/in.json @@ -0,0 +1,12 @@ +[ + [ + "a", + "b" + ], + { + "a": "b" + }, + "a", + "b", + "c" +] diff --git a/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml b/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml new file mode 100644 index 0000000..f709dc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml @@ -0,0 +1,5 @@ +- [ a, b ] +- { a: b } +- "a" +- 'b' +- c diff --git a/Tests/Fixtures/yaml-test-suite/Q8AD/in.json b/Tests/Fixtures/yaml-test-suite/Q8AD/in.json new file mode 100644 index 0000000..6ab3718 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q8AD/in.json @@ -0,0 +1 @@ +"folded to a space,\nto a line feed, or \t \tnon-content" diff --git a/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml b/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml new file mode 100644 index 0000000..bf14c53 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml @@ -0,0 +1,6 @@ +--- +"folded +to a space, + +to a line feed, or \ + \ non-content" diff --git a/Tests/Fixtures/yaml-test-suite/QF4Y/in.json b/Tests/Fixtures/yaml-test-suite/QF4Y/in.json new file mode 100644 index 0000000..15925a4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QF4Y/in.json @@ -0,0 +1,5 @@ +[ + { + "foo": "bar" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml b/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml new file mode 100644 index 0000000..77f3eb3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml @@ -0,0 +1,3 @@ +[ +foo: bar +] diff --git a/Tests/Fixtures/yaml-test-suite/QT73/in.json b/Tests/Fixtures/yaml-test-suite/QT73/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/QT73/in.yaml b/Tests/Fixtures/yaml-test-suite/QT73/in.yaml new file mode 100644 index 0000000..84cd22e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QT73/in.yaml @@ -0,0 +1,2 @@ +# comment +... diff --git a/Tests/Fixtures/yaml-test-suite/R4YG/in.json b/Tests/Fixtures/yaml-test-suite/R4YG/in.json new file mode 100644 index 0000000..f84df1f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R4YG/in.json @@ -0,0 +1,6 @@ +[ + "detected\n", + "\n\n# detected\n", + " explicit\n", + "\t\ndetected\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml b/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml new file mode 100644 index 0000000..39bee04 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml @@ -0,0 +1,11 @@ +- | + detected +- > + + + # detected +- |1 + explicit +- > + + detected diff --git a/Tests/Fixtures/yaml-test-suite/R52L/in.json b/Tests/Fixtures/yaml-test-suite/R52L/in.json new file mode 100644 index 0000000..e028548 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R52L/in.json @@ -0,0 +1,10 @@ +{ + "top1": [ + "item1", + { + "key2": "value2" + }, + "item3" + ], + "top2": "value2" +} diff --git a/Tests/Fixtures/yaml-test-suite/R52L/in.yaml b/Tests/Fixtures/yaml-test-suite/R52L/in.yaml new file mode 100644 index 0000000..1add8f8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R52L/in.yaml @@ -0,0 +1,2 @@ +--- +{ top1: [item1, {key2: value2}, item3], top2: value2 } diff --git a/Tests/Fixtures/yaml-test-suite/RHX7/error b/Tests/Fixtures/yaml-test-suite/RHX7/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml b/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml new file mode 100644 index 0000000..8ff8337 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml @@ -0,0 +1,4 @@ +--- +key: value +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/RLU9/in.json b/Tests/Fixtures/yaml-test-suite/RLU9/in.json new file mode 100644 index 0000000..ab6d5e3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RLU9/in.json @@ -0,0 +1,8 @@ +{ + "foo": [ + 42 + ], + "bar": [ + 44 + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml b/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml new file mode 100644 index 0000000..5896eef --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml @@ -0,0 +1,4 @@ +foo: +- 42 +bar: + - 44 diff --git a/Tests/Fixtures/yaml-test-suite/RR7F/in.json b/Tests/Fixtures/yaml-test-suite/RR7F/in.json new file mode 100644 index 0000000..ee9c8be --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RR7F/in.json @@ -0,0 +1,4 @@ +{ + "d": 23, + "a": 4.2 +} diff --git a/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml b/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml new file mode 100644 index 0000000..34ccc87 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml @@ -0,0 +1,3 @@ +a: 4.2 +? d +: 23 diff --git a/Tests/Fixtures/yaml-test-suite/RTP8/in.json b/Tests/Fixtures/yaml-test-suite/RTP8/in.json new file mode 100644 index 0000000..f1131de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RTP8/in.json @@ -0,0 +1 @@ +"Document" diff --git a/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml b/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml new file mode 100644 index 0000000..886e574 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.2 +--- +Document +... # Suffix diff --git a/Tests/Fixtures/yaml-test-suite/RXY3/error b/Tests/Fixtures/yaml-test-suite/RXY3/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml b/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml new file mode 100644 index 0000000..5c9530e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml @@ -0,0 +1,4 @@ +--- +' +... +' diff --git a/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml b/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml new file mode 100644 index 0000000..a18e345 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml @@ -0,0 +1,15 @@ +a: "double + quotes" # lala +b: plain + value # lala +c : #lala + d +? # lala + - seq1 +: # lala + - #lala + seq2 +e: &node # lala + - x: y +block: > # lala + abcde diff --git a/Tests/Fixtures/yaml-test-suite/RZT7/in.json b/Tests/Fixtures/yaml-test-suite/RZT7/in.json new file mode 100644 index 0000000..2331472 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZT7/in.json @@ -0,0 +1,27 @@ +{ + "Time": "2001-11-23 15:01:42 -5", + "User": "ed", + "Warning": "This is an error message for the log file" +} +{ + "Time": "2001-11-23 15:02:31 -5", + "User": "ed", + "Warning": "A slightly different error message." +} +{ + "Date": "2001-11-23 15:03:17 -5", + "User": "ed", + "Fatal": "Unknown variable \"bar\"", + "Stack": [ + { + "file": "TopClass.py", + "line": 23, + "code": "x = MoreObject(\"345\\n\")\n" + }, + { + "file": "MoreClass.py", + "line": 58, + "code": "foo = bar" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml b/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml new file mode 100644 index 0000000..a5c8dc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml @@ -0,0 +1,26 @@ +--- +Time: 2001-11-23 15:01:42 -5 +User: ed +Warning: + This is an error message + for the log file +--- +Time: 2001-11-23 15:02:31 -5 +User: ed +Warning: + A slightly different error + message. +--- +Date: 2001-11-23 15:03:17 -5 +User: ed +Fatal: + Unknown variable "bar" +Stack: + - file: TopClass.py + line: 23 + code: | + x = MoreObject("345\n") + - file: MoreClass.py + line: 58 + code: |- + foo = bar diff --git a/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml b/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml new file mode 100644 index 0000000..c819512 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml @@ -0,0 +1,4 @@ +plain key: in-line value +: # Both empty +"quoted key": +- entry diff --git a/Tests/Fixtures/yaml-test-suite/S4GJ/error b/Tests/Fixtures/yaml-test-suite/S4GJ/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml b/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml new file mode 100644 index 0000000..a555507 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml @@ -0,0 +1,3 @@ +--- +folded: > first line + second line diff --git a/Tests/Fixtures/yaml-test-suite/S4T7/in.json b/Tests/Fixtures/yaml-test-suite/S4T7/in.json new file mode 100644 index 0000000..049aa9e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4T7/in.json @@ -0,0 +1,3 @@ +{ + "aaa": "bbb" +} diff --git a/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml b/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml new file mode 100644 index 0000000..4fc70de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml @@ -0,0 +1,2 @@ +aaa: bbb +... diff --git a/Tests/Fixtures/yaml-test-suite/S7BG/in.json b/Tests/Fixtures/yaml-test-suite/S7BG/in.json new file mode 100644 index 0000000..eadfbdc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S7BG/in.json @@ -0,0 +1,3 @@ +[ + ":," +] diff --git a/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml b/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml new file mode 100644 index 0000000..db7f229 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml @@ -0,0 +1,2 @@ +--- +- :, diff --git a/Tests/Fixtures/yaml-test-suite/S9E8/in.json b/Tests/Fixtures/yaml-test-suite/S9E8/in.json new file mode 100644 index 0000000..cecac0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S9E8/in.json @@ -0,0 +1,10 @@ +{ + "sequence": [ + "one", + "two" + ], + "mapping": { + "sky": "blue", + "sea": "green" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml b/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml new file mode 100644 index 0000000..608ea19 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml @@ -0,0 +1,7 @@ +sequence: +- one +- two +mapping: + ? sky + : blue + sea : green diff --git a/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml b/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml new file mode 100644 index 0000000..e6e30e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml @@ -0,0 +1 @@ +{a: [b, c], [d, e]: f} diff --git a/Tests/Fixtures/yaml-test-suite/SF5V/error b/Tests/Fixtures/yaml-test-suite/SF5V/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml b/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml new file mode 100644 index 0000000..cb5488f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml @@ -0,0 +1,3 @@ +%YAML 1.2 +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json new file mode 100644 index 0000000..62864b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json @@ -0,0 +1 @@ +[null] diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml new file mode 100644 index 0000000..3cf20d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml b/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml new file mode 100644 index 0000000..22ded55 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml @@ -0,0 +1 @@ +: \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/SR86/error b/Tests/Fixtures/yaml-test-suite/SR86/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SR86/in.yaml b/Tests/Fixtures/yaml-test-suite/SR86/in.yaml new file mode 100644 index 0000000..09c3705 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SR86/in.yaml @@ -0,0 +1,2 @@ +key1: &a value +key2: &b *a diff --git a/Tests/Fixtures/yaml-test-suite/SSW6/in.json b/Tests/Fixtures/yaml-test-suite/SSW6/in.json new file mode 100644 index 0000000..fdc456c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SSW6/in.json @@ -0,0 +1 @@ +"here's to \"quotes\"" diff --git a/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml b/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml new file mode 100644 index 0000000..15d41f0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml @@ -0,0 +1,2 @@ +--- +'here''s to "quotes"' diff --git a/Tests/Fixtures/yaml-test-suite/SU74/error b/Tests/Fixtures/yaml-test-suite/SU74/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SU74/in.yaml b/Tests/Fixtures/yaml-test-suite/SU74/in.yaml new file mode 100644 index 0000000..14f338e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SU74/in.yaml @@ -0,0 +1,2 @@ +key1: &alias value1 +&b *alias : value2 diff --git a/Tests/Fixtures/yaml-test-suite/SYW4/in.json b/Tests/Fixtures/yaml-test-suite/SYW4/in.json new file mode 100644 index 0000000..a32fbec --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SYW4/in.json @@ -0,0 +1,5 @@ +{ + "hr": 65, + "avg": 0.278, + "rbi": 147 +} diff --git a/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml b/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml new file mode 100644 index 0000000..7b7ec94 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml @@ -0,0 +1,3 @@ +hr: 65 # Home runs +avg: 0.278 # Batting average +rbi: 147 # Runs Batted In diff --git a/Tests/Fixtures/yaml-test-suite/T26H/in.json b/Tests/Fixtures/yaml-test-suite/T26H/in.json new file mode 100644 index 0000000..6383f8d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T26H/in.json @@ -0,0 +1 @@ +"\n\nliteral\n \n\ntext\n" diff --git a/Tests/Fixtures/yaml-test-suite/T26H/in.yaml b/Tests/Fixtures/yaml-test-suite/T26H/in.yaml new file mode 100644 index 0000000..156b6d0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T26H/in.yaml @@ -0,0 +1,9 @@ +--- | + + + literal + + + text + + # Comment diff --git a/Tests/Fixtures/yaml-test-suite/T4YY/in.json b/Tests/Fixtures/yaml-test-suite/T4YY/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T4YY/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml b/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml new file mode 100644 index 0000000..6cba7f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml @@ -0,0 +1,5 @@ +--- +' 1st non-empty + + 2nd non-empty + 3rd non-empty ' diff --git a/Tests/Fixtures/yaml-test-suite/T5N4/in.json b/Tests/Fixtures/yaml-test-suite/T5N4/in.json new file mode 100644 index 0000000..2e190c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T5N4/in.json @@ -0,0 +1 @@ +"literal\n\ttext\n" diff --git a/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml b/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml new file mode 100644 index 0000000..7ca4172 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml @@ -0,0 +1,5 @@ +--- | + literal + text + + diff --git a/Tests/Fixtures/yaml-test-suite/T833/error b/Tests/Fixtures/yaml-test-suite/T833/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/T833/in.yaml b/Tests/Fixtures/yaml-test-suite/T833/in.yaml new file mode 100644 index 0000000..d35e395 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T833/in.yaml @@ -0,0 +1,4 @@ +--- +{ + foo: 1 + bar: 2 } diff --git a/Tests/Fixtures/yaml-test-suite/TD5N/error b/Tests/Fixtures/yaml-test-suite/TD5N/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml b/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml new file mode 100644 index 0000000..bc6ccbb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml @@ -0,0 +1,3 @@ +- item1 +- item2 +invalid diff --git a/Tests/Fixtures/yaml-test-suite/TE2A/in.json b/Tests/Fixtures/yaml-test-suite/TE2A/in.json new file mode 100644 index 0000000..1f5b290 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TE2A/in.json @@ -0,0 +1,5 @@ +{ + "block mapping": { + "key": "value" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml b/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml new file mode 100644 index 0000000..2ef9084 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml @@ -0,0 +1,2 @@ +block mapping: + key: value diff --git a/Tests/Fixtures/yaml-test-suite/TL85/in.json b/Tests/Fixtures/yaml-test-suite/TL85/in.json new file mode 100644 index 0000000..0fcc9db --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TL85/in.json @@ -0,0 +1 @@ +" foo\nbar\nbaz " diff --git a/Tests/Fixtures/yaml-test-suite/TL85/in.yaml b/Tests/Fixtures/yaml-test-suite/TL85/in.yaml new file mode 100644 index 0000000..d6af812 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TL85/in.yaml @@ -0,0 +1,7 @@ +" + foo + + bar + + baz +" diff --git a/Tests/Fixtures/yaml-test-suite/TS54/in.json b/Tests/Fixtures/yaml-test-suite/TS54/in.json new file mode 100644 index 0000000..c63e7ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TS54/in.json @@ -0,0 +1 @@ +"ab cd\nef\n\ngh\n" diff --git a/Tests/Fixtures/yaml-test-suite/TS54/in.yaml b/Tests/Fixtures/yaml-test-suite/TS54/in.yaml new file mode 100644 index 0000000..f63944e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TS54/in.yaml @@ -0,0 +1,8 @@ +> + ab + cd + + ef + + + gh diff --git a/Tests/Fixtures/yaml-test-suite/U3C3/in.json b/Tests/Fixtures/yaml-test-suite/U3C3/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3C3/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml b/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml new file mode 100644 index 0000000..50f5ab9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml @@ -0,0 +1,3 @@ +%TAG !yaml! tag:yaml.org,2002: +--- +!yaml!str "foo" diff --git a/Tests/Fixtures/yaml-test-suite/U3XV/in.json b/Tests/Fixtures/yaml-test-suite/U3XV/in.json new file mode 100644 index 0000000..7bc2e58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3XV/in.json @@ -0,0 +1,19 @@ +{ + "top1": { + "key1": "one" + }, + "top2": { + "key2": "two" + }, + "top3": { + "key3": "three" + }, + "top4": { + "key4": "four" + }, + "top5": { + "key5": "five" + }, + "top6": "six", + "top7": "seven" +} diff --git a/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml b/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml new file mode 100644 index 0000000..76660a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml @@ -0,0 +1,17 @@ +--- +top1: &node1 + &k1 key1: one +top2: &node2 # comment + key2: two +top3: + &k3 key3: three +top4: + &node4 + &k4 key4: four +top5: + &node5 + key5: five +top6: &val6 + six +top7: + &val7 seven diff --git a/Tests/Fixtures/yaml-test-suite/U44R/error b/Tests/Fixtures/yaml-test-suite/U44R/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/U44R/in.yaml b/Tests/Fixtures/yaml-test-suite/U44R/in.yaml new file mode 100644 index 0000000..de68a32 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U44R/in.yaml @@ -0,0 +1,3 @@ +map: + key1: "quoted1" + key2: "bad indentation" diff --git a/Tests/Fixtures/yaml-test-suite/U99R/error b/Tests/Fixtures/yaml-test-suite/U99R/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/U99R/in.yaml b/Tests/Fixtures/yaml-test-suite/U99R/in.yaml new file mode 100644 index 0000000..ba0c537 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U99R/in.yaml @@ -0,0 +1 @@ +- !!str, xxx diff --git a/Tests/Fixtures/yaml-test-suite/U9NS/in.json b/Tests/Fixtures/yaml-test-suite/U9NS/in.json new file mode 100644 index 0000000..7bc7eac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U9NS/in.json @@ -0,0 +1,10 @@ +{ + "time": "20:03:20", + "player": "Sammy Sosa", + "action": "strike (miss)" +} +{ + "time": "20:03:47", + "player": "Sammy Sosa", + "action": "grand slam" +} diff --git a/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml b/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml new file mode 100644 index 0000000..05e102d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml @@ -0,0 +1,10 @@ +--- +time: 20:03:20 +player: Sammy Sosa +action: strike (miss) +... +--- +time: 20:03:47 +player: Sammy Sosa +action: grand slam +... diff --git a/Tests/Fixtures/yaml-test-suite/UDM2/in.json b/Tests/Fixtures/yaml-test-suite/UDM2/in.json new file mode 100644 index 0000000..7f2c93d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDM2/in.json @@ -0,0 +1,5 @@ +[ + { + "url": "http://example.org" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml b/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml new file mode 100644 index 0000000..fa95c05 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml @@ -0,0 +1 @@ +- { url: http://example.org } diff --git a/Tests/Fixtures/yaml-test-suite/UDR7/in.json b/Tests/Fixtures/yaml-test-suite/UDR7/in.json new file mode 100644 index 0000000..cecac0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDR7/in.json @@ -0,0 +1,10 @@ +{ + "sequence": [ + "one", + "two" + ], + "mapping": { + "sky": "blue", + "sea": "green" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml b/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml new file mode 100644 index 0000000..df33847 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml @@ -0,0 +1,2 @@ +sequence: [ one, two, ] +mapping: { sky: blue, sea: green } diff --git a/Tests/Fixtures/yaml-test-suite/UGM3/in.json b/Tests/Fixtures/yaml-test-suite/UGM3/in.json new file mode 100644 index 0000000..a710161 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UGM3/in.json @@ -0,0 +1,41 @@ +{ + "invoice": 34843, + "date": "2001-01-23", + "bill-to": { + "given": "Chris", + "family": "Dumars", + "address": { + "lines": "458 Walkman Dr.\nSuite #292\n", + "city": "Royal Oak", + "state": "MI", + "postal": 48046 + } + }, + "ship-to": { + "given": "Chris", + "family": "Dumars", + "address": { + "lines": "458 Walkman Dr.\nSuite #292\n", + "city": "Royal Oak", + "state": "MI", + "postal": 48046 + } + }, + "product": [ + { + "sku": "BL394D", + "quantity": 4, + "description": "Basketball", + "price": 450 + }, + { + "sku": "BL4438H", + "quantity": 1, + "description": "Super Hoop", + "price": 2392 + } + ], + "tax": 251.42, + "total": 4443.52, + "comments": "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338." +} diff --git a/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml b/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml new file mode 100644 index 0000000..4625739 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml @@ -0,0 +1,29 @@ +--- ! +invoice: 34843 +date : 2001-01-23 +bill-to: &id001 + given : Chris + family : Dumars + address: + lines: | + 458 Walkman Dr. + Suite #292 + city : Royal Oak + state : MI + postal : 48046 +ship-to: *id001 +product: + - sku : BL394D + quantity : 4 + description : Basketball + price : 450.00 + - sku : BL4438H + quantity : 1 + description : Super Hoop + price : 2392.00 +tax : 251.42 +total: 4443.52 +comments: + Late afternoon is best. + Backup contact is Nancy + Billsmer @ 338-4338. diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json new file mode 100644 index 0000000..f32d2e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json @@ -0,0 +1,3 @@ +{ + ":": null +} diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml new file mode 100644 index 0000000..bef3763 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml @@ -0,0 +1 @@ +:: diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml b/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml new file mode 100644 index 0000000..cdf4cb4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml @@ -0,0 +1 @@ +! diff --git a/Tests/Fixtures/yaml-test-suite/UT92/in.json b/Tests/Fixtures/yaml-test-suite/UT92/in.json new file mode 100644 index 0000000..587bbf4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UT92/in.json @@ -0,0 +1,4 @@ +{ + "matches %": 20 +} +null diff --git a/Tests/Fixtures/yaml-test-suite/UT92/in.yaml b/Tests/Fixtures/yaml-test-suite/UT92/in.yaml new file mode 100644 index 0000000..bc363b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UT92/in.yaml @@ -0,0 +1,7 @@ +--- +{ matches +% : 20 } +... +--- +# Empty +... diff --git a/Tests/Fixtures/yaml-test-suite/V55R/in.json b/Tests/Fixtures/yaml-test-suite/V55R/in.json new file mode 100644 index 0000000..b2810bc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/V55R/in.json @@ -0,0 +1,6 @@ +[ + "a", + "b", + "a", + "b" +] diff --git a/Tests/Fixtures/yaml-test-suite/V55R/in.yaml b/Tests/Fixtures/yaml-test-suite/V55R/in.yaml new file mode 100644 index 0000000..b3c45b5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/V55R/in.yaml @@ -0,0 +1,4 @@ +- &a a +- &b b +- *a +- *b diff --git a/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json new file mode 100644 index 0000000..ebcd68c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json @@ -0,0 +1,5 @@ +{ + "k" : { + "k" : "v" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml new file mode 100644 index 0000000..1d71c2a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml @@ -0,0 +1,5 @@ +k: { + k + : + v + } diff --git a/Tests/Fixtures/yaml-test-suite/W42U/in.json b/Tests/Fixtures/yaml-test-suite/W42U/in.json new file mode 100644 index 0000000..b277eb8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W42U/in.json @@ -0,0 +1,11 @@ +[ + null, + "block node\n", + [ + "one", + "two" + ], + { + "one": "two" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/W42U/in.yaml b/Tests/Fixtures/yaml-test-suite/W42U/in.yaml new file mode 100644 index 0000000..35ac923 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W42U/in.yaml @@ -0,0 +1,6 @@ +- # Empty +- | + block node +- - one # Compact + - two # sequence +- one: two # Compact mapping diff --git a/Tests/Fixtures/yaml-test-suite/W4TN/in.json b/Tests/Fixtures/yaml-test-suite/W4TN/in.json new file mode 100644 index 0000000..c9dfdfe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W4TN/in.json @@ -0,0 +1,2 @@ +"%!PS-Adobe-2.0\n" +null diff --git a/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml b/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml new file mode 100644 index 0000000..82de01b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml @@ -0,0 +1,8 @@ +%YAML 1.2 +--- | +%!PS-Adobe-2.0 +... +%YAML 1.2 +--- +# Empty +... diff --git a/Tests/Fixtures/yaml-test-suite/W5VH/in.json b/Tests/Fixtures/yaml-test-suite/W5VH/in.json new file mode 100644 index 0000000..d2a0de4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W5VH/in.json @@ -0,0 +1,4 @@ +{ + "a": "scalar a", + "b": "scalar a" +} diff --git a/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml b/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml new file mode 100644 index 0000000..43c7a15 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml @@ -0,0 +1,2 @@ +a: &:@*!$": scalar a +b: *:@*!$": diff --git a/Tests/Fixtures/yaml-test-suite/W9L4/error b/Tests/Fixtures/yaml-test-suite/W9L4/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml b/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml new file mode 100644 index 0000000..7b15d0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml @@ -0,0 +1,5 @@ +--- +block scalar: | + + more spaces at the beginning + are invalid diff --git a/Tests/Fixtures/yaml-test-suite/WZ62/in.json b/Tests/Fixtures/yaml-test-suite/WZ62/in.json new file mode 100644 index 0000000..e1b8322 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/WZ62/in.json @@ -0,0 +1,4 @@ +{ + "foo": "", + "": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml b/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml new file mode 100644 index 0000000..aa86103 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml @@ -0,0 +1,4 @@ +{ + foo : !!str, + !!str : bar, +} diff --git a/Tests/Fixtures/yaml-test-suite/X38W/in.yaml b/Tests/Fixtures/yaml-test-suite/X38W/in.yaml new file mode 100644 index 0000000..4772110 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X38W/in.yaml @@ -0,0 +1 @@ +{ &a [a, &b b]: *b, *a : [c, *b, d]} diff --git a/Tests/Fixtures/yaml-test-suite/X8DW/in.json b/Tests/Fixtures/yaml-test-suite/X8DW/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X8DW/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml b/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml new file mode 100644 index 0000000..22911fc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml @@ -0,0 +1,4 @@ +--- +? key +# comment +: value diff --git a/Tests/Fixtures/yaml-test-suite/XLQ9/in.json b/Tests/Fixtures/yaml-test-suite/XLQ9/in.json new file mode 100644 index 0000000..20ec09f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XLQ9/in.json @@ -0,0 +1 @@ +"scalar %YAML 1.2" diff --git a/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml b/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml new file mode 100644 index 0000000..dbe36b9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml @@ -0,0 +1,3 @@ +--- +scalar +%YAML 1.2 diff --git a/Tests/Fixtures/yaml-test-suite/XV9V/in.json b/Tests/Fixtures/yaml-test-suite/XV9V/in.json new file mode 100644 index 0000000..41a96a1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XV9V/in.json @@ -0,0 +1,4 @@ +{ + "Folding": "Empty line\nas a line feed", + "Chomping": "Clipped empty lines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml b/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml new file mode 100644 index 0000000..c7775c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml @@ -0,0 +1,8 @@ +Folding: + "Empty line + + as a line feed" +Chomping: | + Clipped empty lines + + diff --git a/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml b/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml new file mode 100644 index 0000000..4fcc93e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml @@ -0,0 +1,16 @@ +a: "double + quotes" # lala +b: plain + value # lala +c : #lala + d +? # lala + - seq1 +: # lala + - #lala + seq2 +e: + &node # lala + - x: y +block: > # lala + abcde diff --git a/Tests/Fixtures/yaml-test-suite/Y2GN/in.json b/Tests/Fixtures/yaml-test-suite/Y2GN/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y2GN/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml b/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml new file mode 100644 index 0000000..ec2bb92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml @@ -0,0 +1,2 @@ +--- +key: &an:chor value diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/000/error b/Tests/Fixtures/yaml-test-suite/Y79Y/000/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml new file mode 100644 index 0000000..4e55271 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml @@ -0,0 +1,3 @@ +foo: | + +bar: 1 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json new file mode 100644 index 0000000..687c550 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json @@ -0,0 +1,4 @@ +{ + "foo": "\t\n", + "bar": 1 +} diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml new file mode 100644 index 0000000..3c2e414 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml @@ -0,0 +1,3 @@ +foo: | + +bar: 1 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json new file mode 100644 index 0000000..4e8764e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json @@ -0,0 +1,5 @@ +[ + [ + "foo" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml new file mode 100644 index 0000000..6b6ad5d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml @@ -0,0 +1,4 @@ +- [ + + foo + ] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/004/error b/Tests/Fixtures/yaml-test-suite/Y79Y/004/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml new file mode 100644 index 0000000..0806e5a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml @@ -0,0 +1 @@ +- - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/005/error b/Tests/Fixtures/yaml-test-suite/Y79Y/005/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml new file mode 100644 index 0000000..ec67404 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml @@ -0,0 +1 @@ +- - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/006/error b/Tests/Fixtures/yaml-test-suite/Y79Y/006/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml new file mode 100644 index 0000000..5c42b44 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml @@ -0,0 +1 @@ +? - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/007/error b/Tests/Fixtures/yaml-test-suite/Y79Y/007/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml new file mode 100644 index 0000000..4f3691a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml @@ -0,0 +1,2 @@ +? - +: - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/008/error b/Tests/Fixtures/yaml-test-suite/Y79Y/008/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml new file mode 100644 index 0000000..b9a50bb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml @@ -0,0 +1 @@ +? key: diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/009/error b/Tests/Fixtures/yaml-test-suite/Y79Y/009/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml new file mode 100644 index 0000000..851a621 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml @@ -0,0 +1,2 @@ +? key: +: key: diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json new file mode 100644 index 0000000..4c1600d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json @@ -0,0 +1,3 @@ +[ + -1 +] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml new file mode 100644 index 0000000..763ef1b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml @@ -0,0 +1 @@ +- -1 diff --git a/Tests/Fixtures/yaml-test-suite/YD5X/in.json b/Tests/Fixtures/yaml-test-suite/YD5X/in.json new file mode 100644 index 0000000..45d384a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/YD5X/in.json @@ -0,0 +1,17 @@ +[ + [ + "name", + "hr", + "avg" + ], + [ + "Mark McGwire", + 65, + 0.278 + ], + [ + "Sammy Sosa", + 63, + 0.288 + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml b/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml new file mode 100644 index 0000000..cdd7770 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml @@ -0,0 +1,3 @@ +- [name , hr, avg ] +- [Mark McGwire, 65, 0.278] +- [Sammy Sosa , 63, 0.288] diff --git a/Tests/Fixtures/yaml-test-suite/Z67P/in.json b/Tests/Fixtures/yaml-test-suite/Z67P/in.json new file mode 100644 index 0000000..f1eedb0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z67P/in.json @@ -0,0 +1,4 @@ +{ + "literal": "value\n", + "folded": "value\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml b/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml new file mode 100644 index 0000000..69122ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml @@ -0,0 +1,4 @@ +literal: |2 + value +folded: !foo >1 + value diff --git a/Tests/Fixtures/yaml-test-suite/Z9M4/in.json b/Tests/Fixtures/yaml-test-suite/Z9M4/in.json new file mode 100644 index 0000000..248299a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z9M4/in.json @@ -0,0 +1,3 @@ +[ + "bar" +] diff --git a/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml b/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml new file mode 100644 index 0000000..eedfe04 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml @@ -0,0 +1,3 @@ +%TAG !e! tag:example.com,2000:app/ +--- +- !e!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/ZF4X/in.json b/Tests/Fixtures/yaml-test-suite/ZF4X/in.json new file mode 100644 index 0000000..425e548 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZF4X/in.json @@ -0,0 +1,10 @@ +{ + "Mark McGwire": { + "hr": 65, + "avg": 0.278 + }, + "Sammy Sosa": { + "hr": 63, + "avg": 0.288 + } +} diff --git a/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml b/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml new file mode 100644 index 0000000..7a957b2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml @@ -0,0 +1,5 @@ +Mark McGwire: {hr: 65, avg: 0.278} +Sammy Sosa: { + hr: 63, + avg: 0.288 + } diff --git a/Tests/Fixtures/yaml-test-suite/ZH7C/in.json b/Tests/Fixtures/yaml-test-suite/ZH7C/in.json new file mode 100644 index 0000000..bc92764 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZH7C/in.json @@ -0,0 +1,4 @@ +{ + "a": "b", + "c": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml b/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml new file mode 100644 index 0000000..64d718f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml @@ -0,0 +1,2 @@ +&a a: b +c: &d d diff --git a/Tests/Fixtures/yaml-test-suite/ZK9H/in.json b/Tests/Fixtures/yaml-test-suite/ZK9H/in.json new file mode 100644 index 0000000..69b8133 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZK9H/in.json @@ -0,0 +1,9 @@ +{ + "key": [ + [ + [ + "value" + ] + ] + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml b/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml new file mode 100644 index 0000000..eb177c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml @@ -0,0 +1,4 @@ +{ key: [[[ + value + ]]] +} diff --git a/Tests/Fixtures/yaml-test-suite/ZVH3/error b/Tests/Fixtures/yaml-test-suite/ZVH3/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml b/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml new file mode 100644 index 0000000..9db12c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml @@ -0,0 +1,2 @@ +- key: value + - item1 diff --git a/Tests/Fixtures/yaml-test-suite/ZWK4/in.json b/Tests/Fixtures/yaml-test-suite/ZWK4/in.json new file mode 100644 index 0000000..ede92b9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZWK4/in.json @@ -0,0 +1,5 @@ +{ + "a": 1, + "b": null, + "c": 3 +} diff --git a/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml b/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml new file mode 100644 index 0000000..b6fca2a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml @@ -0,0 +1,4 @@ +--- +a: 1 +? b +&anchor c: 3 diff --git a/Tests/Fixtures/yaml-test-suite/ZXT5/error b/Tests/Fixtures/yaml-test-suite/ZXT5/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml b/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml new file mode 100644 index 0000000..be1ccf2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml @@ -0,0 +1,2 @@ +[ "key" + :value ] diff --git a/Tests/YAMLTestSuiteGapsTests.swift b/Tests/YAMLTestSuiteGapsTests.swift index 67b5606..be4519a 100644 --- a/Tests/YAMLTestSuiteGapsTests.swift +++ b/Tests/YAMLTestSuiteGapsTests.swift @@ -2,49 +2,66 @@ import Foundation @testable import PureYAML import Testing -/// Conformance gaps measured against the official YAML test suite -/// (github.com/yaml/yaml-test-suite, `data` branch). The vendored cases under -/// `Fixtures/yaml-test-suite/` are exactly the suite entries PureYAML does not -/// yet handle correctly. The manifest records each gap's current behavior so a -/// future fix is forced to update it (the gated test below reports drift). +/// Full conformance gate against the official YAML test suite +/// (github.com/yaml/yaml-test-suite, `data` branch, commit +/// 6ad3d2c62885d82fc349026c136ef560838fdf3d). Every official case (numbered +/// sub-cases counted) is vendored under `Fixtures/yaml-test-suite//` and +/// recorded in `Fixtures/yaml-test-suite-manifest.yaml` with a `status`: +/// +/// - `passing`: PureYAML already handles the case conformantly (it parses with a +/// value matching the JSON oracle when one is present, or it rejects an error +/// case). This is the regression guard: if a later change breaks the case, the +/// gated sweep fails. +/// - `gap`: PureYAML does not yet handle the case conformantly. The sweep asserts +/// the gap still reproduces, so a fix is forced to update the manifest rather +/// than silently drift. /// /// The behavioral sweep is gated behind `PUREYAML_RUN_YAML_TEST_SUITE=1`, mirroring -/// the full real-corpus sweep, so the default suite stays green while the gaps are -/// tracked rather than silenced. +/// the full real-corpus sweep, so the default suite stays fast while the whole suite +/// is guarded on demand. The manifest-integrity test below is always on. @Suite("YAML Test Suite Gaps") struct YAMLTestSuiteGapsTests { - @Test("Gap manifest matches vendored fixture files") - func test_gapManifestMatchesVendoredFixtureFiles() throws { + @Test("Manifest is consistent with its vendored fixture files") + func test_manifestMatchesVendoredFixtureFiles() throws { let manifest = try YAMLTestSuiteManifest.load() - #expect(manifest.version == 1) - #expect(manifest.cases.count == 54) - #expect(manifest.cases.count(where: { $0.category == "false-reject" }) == 9) - #expect(manifest.cases.count(where: { $0.category == "json-mismatch" }) == 9) - #expect(manifest.cases.count(where: { $0.category == "accepted-invalid" }) == 36) + #expect(manifest.version == 2) + #expect(manifest.cases.count == manifest.total) + #expect(manifest.total == 402) #expect(Set(manifest.cases.map(\.id)).count == manifest.cases.count) + let passing = manifest.cases.count(where: { $0.status == "passing" }) + let gaps = manifest.cases.count(where: { $0.status == "gap" }) + #expect(passing == manifest.passing) + #expect(gaps == manifest.gap) + #expect(passing + gaps == manifest.total) + + let rejects = manifest.cases.count(where: { $0.expected == "reject" }) + let parseOK = manifest.cases.count(where: { $0.expected == "parse-ok" }) + #expect(rejects + parseOK == manifest.total) + for testCase in manifest.cases { + #expect(testCase.status == "passing" || testCase.status == "gap", "\(testCase.id): invalid status") + #expect(testCase.expected == "reject" || testCase.expected == "parse-ok", "\(testCase.id): invalid expected") + #expect(testCase.oracle == "json" || testCase.oracle == "none", "\(testCase.id): invalid oracle") + let yaml = try testCase.loadInput() #expect(yaml.utf8.count == testCase.byteCount, "\(testCase.id): byte count drift") #expect(yaml.count(where: { $0 == "\n" }) == testCase.lineCount, "\(testCase.id): line count drift") - switch testCase.category { - case "accepted-invalid": - #expect(testCase.expected == "reject") - #expect(testCase.loadErrorMarker() != nil, "\(testCase.id): missing error marker") - default: - #expect(testCase.expected == "parse-ok") + if testCase.expected == "reject" { + #expect(testCase.loadErrorMarker() != nil, "\(testCase.id): reject case is missing its error marker") } - if testCase.oracle == "json" { - #expect(testCase.loadExpectedJSON() != nil, "\(testCase.id): missing in.json oracle") + #expect(testCase.loadExpectedJSON() != nil, "\(testCase.id): json oracle case is missing in.json") + } else { + #expect(testCase.loadExpectedJSON() == nil, "\(testCase.id): oracle is none but an in.json is present") } } } - @Test("Recorded conformance gaps still reproduce") - func test_recordedConformanceGapsStillReproduce() throws { + @Test("Every case matches its recorded conformance status") + func test_everyCaseMatchesRecordedStatus() throws { guard ProcessInfo.processInfo.environment["PUREYAML_RUN_YAML_TEST_SUITE"] == "1" else { return } @@ -53,8 +70,12 @@ struct YAMLTestSuiteGapsTests { for testCase in manifest.cases { let observed = try testCase.observedStatus() #expect( - observed == testCase.current, - "\(testCase.id) \"\(testCase.name)\": recorded gap '\(testCase.current)' but observed '\(observed)'. If this case is now handled correctly, update the manifest.", + observed == testCase.status, + """ + \(testCase.id) "\(testCase.name)": manifest records status '\(testCase.status)' \ + but observed '\(observed)'. A 'passing' case that now fails is a regression; \ + a 'gap' case that now succeeds should be promoted to 'passing' in the manifest. + """, ) } } @@ -64,20 +85,29 @@ struct YAMLTestSuiteGapsTests { struct YAMLTestSuiteManifest { var version: Int + var total: Int + var passing: Int + var gap: Int var cases: [YAMLTestSuiteCase] static func load() throws -> Self { let url = try #require(Bundle.module.url( - forResource: "yaml-test-suite-gaps", + forResource: "yaml-test-suite-manifest", withExtension: "yaml", subdirectory: "Fixtures", )) let value = try PureYAML.parse(String(contentsOf: url, encoding: .utf8)) let root = try #require(value.mapping) let version = try #require(root["version"]?.intValue) + let total = try #require(root["total"]?.intValue) + let passing = try #require(root["passing"]?.intValue) + let gap = try #require(root["gap"]?.intValue) let caseValues = try #require(root.sequence("cases")) return try YAMLTestSuiteManifest( version: version, + total: total, + passing: passing, + gap: gap, cases: caseValues.map(YAMLTestSuiteCase.init(value:)), ) } @@ -87,10 +117,9 @@ struct YAMLTestSuiteCase { var id: String var name: String var localPath: String - var category: String var expected: String var oracle: String - var current: String + var status: String var byteCount: Int var lineCount: Int @@ -99,10 +128,9 @@ struct YAMLTestSuiteCase { id = try mapping.requiredString("id") name = try mapping.requiredString("name") localPath = try mapping.requiredString("localPath") - category = try mapping.requiredString("category") expected = try mapping.requiredString("expected") oracle = try mapping.requiredString("oracle") - current = try mapping.requiredString("current") + status = try mapping.requiredString("status") byteCount = try mapping.requiredInt("byteCount") lineCount = try mapping.requiredInt("lineCount") } @@ -128,8 +156,15 @@ struct YAMLTestSuiteCase { return try? String(contentsOf: url, encoding: .utf8) } - /// Recomputes PureYAML's present behavior for this case, in the same vocabulary - /// the manifest's `current` field uses, so drift (including fixes) is detectable. + /// Recomputes PureYAML's present behavior for this case in the manifest's + /// `status` vocabulary, so any drift (a regression in a passing case, or a fix + /// that promotes a gap) is detectable. + /// + /// Conformance is decided by parsing alone: an error case is `passing` when the + /// parser rejects it; a value case is `passing` when the parser accepts it and, + /// when an in.json oracle is present, the parsed value matches it. Strict + /// validation (e.g. duplicate-key detection) is a separate, orthogonal concern + /// and is deliberately not part of the conformance decision. func observedStatus() throws -> String { let yaml = try loadInput() var documents: [PureYAML.Stream.Document] = [] @@ -139,31 +174,31 @@ struct YAMLTestSuiteCase { } catch { parseThrew = true } - var validateThrew = false - if !parseThrew { - do { - _ = try PureYAML.validate(documents) - } catch { - validateThrew = true - } - } - if category == "accepted-invalid" { - return (parseThrew || validateThrew) ? "reject" : "accepted" + if expected == "reject" { + return parseThrew ? "passing" : "gap" } - if parseThrew { - return "parse-error" + return "gap" } - - guard oracle == "json", let jsonText = loadExpectedJSON(), let expectedDocuments = decodeJSONStream(jsonText) else { - return "parse-ok" + guard oracle == "json", let jsonText = loadExpectedJSON() else { + return "passing" + } + // An empty in.json oracle means the conformant output is an empty stream + // (no JSON value), as for a comment-only or document-end-only input. A parser + // that yields any document then differs from the oracle, so it is a gap. + let trimmed = jsonText.trimmingCharacters(in: .whitespacesAndNewlines) + if trimmed.isEmpty { + return documents.isEmpty ? "passing" : "gap" + } + guard let expectedDocuments = decodeJSONStream(jsonText) else { + return "gap" } if expectedDocuments.count != documents.count { - return "value-mismatch" + return "gap" } let matches = zip(documents, expectedDocuments).allSatisfy { equalValue($0.value, $1) } - return matches ? "value-match" : "value-mismatch" + return matches ? "passing" : "gap" } } diff --git a/docs/YAML_TEST_SUITE_CONFORMANCE.md b/docs/YAML_TEST_SUITE_CONFORMANCE.md index 6a3a753..7188a76 100644 --- a/docs/YAML_TEST_SUITE_CONFORMANCE.md +++ b/docs/YAML_TEST_SUITE_CONFORMANCE.md @@ -2,53 +2,103 @@ This document tracks PureYAML against the official [YAML test suite](https://github.com/yaml/yaml-test-suite) and lays out the -ordered plan for closing the gaps. It is a living document: bucket 1 (block -scalars), bucket 2 (quoted-scalar folding), bucket 3 (empty nodes and empty -keys), and bucket 4 (anchors, tags, and aliases as mapping keys) have landed; -buckets 5-6 remain. +ordered plan for closing the gaps. It is a living document: buckets 1-8 have +landed, and the conformance gate now guards the **entire** suite (all 402 cases), +not just the open gaps, so a fixed case can no longer silently regress. ## How conformance is measured -The suite's `data` branch (commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`) was -run against `PureYAML.parseStream` + `PureYAML.validate`, with each case judged by -its own oracle: +The suite's `data` branch (commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`) is +run against `PureYAML.parseStream`, with each case judged by its own oracle: - **error cases** (an `error` marker): a conformant parser must reject the input. - **data cases** (an `in.json`): the parsed value must match the expected JSON - projection (core-schema resolved), compared structurally. -- **plain valid cases** (neither): the input must at least parse without error. + projection (core-schema resolved), compared structurally. An empty `in.json` + means the conformant output is an empty stream (no document). +- **plain valid cases** (neither): the input must parse without error. + +Conformance is decided by parsing alone. Strict validation (for example +duplicate-key detection in `PureYAML.validate`) is a separate, orthogonal concern +and is deliberately not part of the conformance decision, so a parseable document +that strict mode would reject is still counted as a passing parse. + +### The full-suite gate + +Earlier revisions tracked only the *failing* cases in a gap-only manifest and +deleted a case from it once fixed. That let later work silently regress an +already-fixed case, because nothing guarded it any longer. The gate is now +**comprehensive**: `Tests/Fixtures/yaml-test-suite-manifest.yaml` records *all* +402 cases (numbered sub-cases counted), each with its `id`, `name`, `localPath`, +the conformant `expected` behavior (`parse-ok` | `reject`), its `oracle` +(`json` | `none`), the input `byteCount` and `lineCount`, and a `status`: + +- `passing`: PureYAML handles the case conformantly today. +- `gap`: PureYAML does not yet handle it conformantly. + +Every case's files (`in.yaml`, plus `in.json` and/or `error`) are vendored under +`Tests/Fixtures/yaml-test-suite//`. The gated behavioral sweep asserts, for +**every** case, that a `passing` case still passes (the regression guard) and a +`gap` case still reproduces its non-conformant behavior (so a fix is forced to +update the manifest). A regression in any passing case now fails the sweep. ### Result at the pinned commit -402 cases (including numbered sub-cases). First measurement was 196 pass / 206 -fail; after bucket 1 (block scalars, +24), bucket 2 (quoted-scalar folding, +30), -bucket 3 (empty nodes and empty keys, +20), bucket 4 (anchors, tags, and -aliases as mapping keys, +10), bucket 5 (directives and document boundaries, -+15), bucket 6 (stricter rejection of invalid input, +15), bucket 7 -(document-root multi-line plain and block scalars, +33), and bucket 8 -(flow-collection completeness, +10) it is now -**348 pass, 54 fail.** -The 54 remaining failing cases are vendored under -`Tests/Fixtures/yaml-test-suite/` and recorded in -`Tests/Fixtures/yaml-test-suite-gaps.yaml`. Run the opt-in sweep with: +402 cases (including numbered sub-cases): **329 passing, 73 gap.** Run the opt-in +sweep with: ```sh bash scripts/check-yaml-test-suite.sh ``` -The default `swift test` only checks that the manifest still matches the vendored -files; the behavioral sweep is gated behind `PUREYAML_RUN_YAML_TEST_SUITE=1`, the -same way the full real-world corpus is gated. The sweep asserts that each recorded -gap still reproduces, so fixing a case fails the sweep until the manifest is -updated, the deliberate forcing function for keeping this document honest. +The default `swift test` only checks manifest/fixture/byte/line integrity and that +the recorded counts are consistent; the behavioral sweep is gated behind +`PUREYAML_RUN_YAML_TEST_SUITE=1`, the same way the full real-world corpus is gated. + +### Regressions repaired by the full-suite gate + +Making the gate comprehensive surfaced cases that had been fixed in an earlier +bucket and then silently regressed. All were repaired and set back to `passing`: + +- **Tab over-rejection.** A tab was being rejected wherever it appeared at a block + line start, over-rejecting valid forms. Per `scanner.c` (`scan_to_next_token`, + `scan_block_scalar_breaks`, `scan_plain_scalar`), a tab is illegal *only* as + block-structure indentation. Block indentation is now spaces-only; a tab is left + for the token scanner, which allows it (a) inside block-scalar content once the + content column is established by spaces (`96NN/00`, `96NN/01`, `R4YG`, + `Y79Y/001`), (b) as separation before a scalar value (`DK95/00`) or a flow node + (`6CA3`, `Q5MG`, `J3BT`), and (c) on a whitespace-only blank line (`DK95/03`, + `DK95/07`), while still rejecting genuine tab indentation (`4EJS`, `Y79Y/000`, + `Y79Y/004`-`/008`, `DK95/06`). The batch scanner and the incremental token cursor + were unified onto a single `scanStep`, since the divergence between them is what + let the streaming parser miss a tab error the batch scanner caught. +- **`26DV`** (anchors/aliases as mapping keys). An anchor on a `key:` value line + followed by an indented `*alias :` key was throwing, because the anchor was being + pushed onto the alias key (which cannot carry properties) instead of the nested + mapping. The alias-as-key path now attaches a property scanned on a prior line to + the enclosing mapping, and only rejects an alias that carries a property on its + own line (`&b *alias`, still correctly rejected by `SU74`). +- **`WZ62`** (flow rework). `{ foo : !!str, !!str : bar, }` mis-parsed the second + entry's bare-tag key into a mapping-as-key. A flow key introduced by a spliced + `mappingKey` now uses the same key parser as the implicit form, so a bare tag or + anchor before the `:` composes an empty tagged scalar key. ## Failure categories (remaining) -| Category | Count | Meaning | -|---|---|---| -| `false-reject` | 9 | Well-formed YAML that PureYAML wrongly rejects at parse time. | -| `json-mismatch` | 9 | Parses, but produces a value that disagrees with the expected JSON. | -| `accepted-invalid` | 36 | Malformed YAML that PureYAML wrongly accepts. | +The 73 remaining gaps are tracked individually in the manifest. They cluster as: + +| Category | Meaning | +|---|---| +| false-reject | Well-formed YAML that PureYAML wrongly rejects at parse time. | +| json-mismatch | Parses, but produces a value that disagrees with the expected JSON. | +| accepted-invalid | Malformed YAML that PureYAML wrongly accepts (it should reject). | + +Notable still-open gaps include flow-context plain scalars that start with an +indicator (`[:x]` HM87/00, `[?x]` HM87/01, `{x: :x}` 58MP, `{?foo: bar}` 652Z), +non-ASCII and special-character anchor/alias names (`&😁` 8XYN, `&an:chor` Y2GN, +W5VH), multi-line flow keys (4MUZ/02, VJP3/01), and a few inputs that should be +rejected but are accepted (DK4H, ZXT5, Y79Y/003, VJP3/00). These were verified to +be genuine never-supported gaps, not regressions, and are tracked with +`status: gap`. ## Root-cause buckets and fix order @@ -333,15 +383,18 @@ nesting issue (`- - - []`), not flow, and remains `json-mismatch`. ## Updating this document -When a bucket lands: +When a fix lands: 1. Re-run `bash scripts/check-yaml-test-suite.sh`; it will fail on the now-fixed - cases. + cases (a `gap` whose behavior changed) and on any case the change regressed (a + `passing` case that now fails). 2. For each newly-passing case, assert the round-trip law (parse → dump → parse is stable) in addition to the value/JSON match, per `core/round-trip-transformation.md`; the parser fix is only proven once the emitter agrees on the same input. -3. Remove those cases from `Tests/Fixtures/yaml-test-suite-gaps.yaml` and delete - their vendored fixtures (or, for `json-mismatch` cases that now parse but are - still being verified, update `current`). -4. Update the counts in this document and in `CHANGELOG.md`. +3. Flip those cases' `status` to `passing` in + `Tests/Fixtures/yaml-test-suite-manifest.yaml`. Do **not** delete a case or its + vendored fixtures: the whole suite stays vendored and guarded so a future change + cannot silently regress a fixed case. +4. Update the `passing` / `gap` counts in the manifest header and in this document + and `CHANGELOG.md`. diff --git a/scripts/check-yaml-test-suite.sh b/scripts/check-yaml-test-suite.sh index 93d1362..7737608 100755 --- a/scripts/check-yaml-test-suite.sh +++ b/scripts/check-yaml-test-suite.sh @@ -1,9 +1,10 @@ #!/usr/bin/env bash set -euo pipefail -# Runs the opt-in conformance sweep over the vendored YAML test suite gaps. -# Each case in Tests/Fixtures/yaml-test-suite-gaps.yaml is a documented gap: -# the sweep verifies PureYAML's current behavior still matches the recorded -# `current` status, so any fix is forced to update the manifest. +# Runs the opt-in conformance sweep over the full vendored YAML test suite. +# Tests/Fixtures/yaml-test-suite-manifest.yaml records all 402 cases with a +# `status` (passing | gap); the sweep verifies every passing case still passes +# (the regression guard) and every gap still reproduces, so any fix or regression +# is forced to update the manifest. PUREYAML_RUN_YAML_TEST_SUITE=1 swift test --filter YAMLTestSuiteGapsTests