Skip to content
Novus Examples
yaml651 B

YAML with CRLF Line Endings

A YAML file written with CRLF line endings, which the spec accepts as a line break. A parser that splits on \n alone leaves a stray carriage return at the end of every plain scalar, so "build" becomes "build\r" and equality checks quietly fail.

Preview — first 19 linesyaml
# This file is written with CRLF (\r\n) line endings on purpose, because pipeline definitions
# are edited on Windows too. YAML accepts CRLF as a line break, but a parser that splits on \n
# alone leaves a stray carriage return at the end of every plain scalar — so `stage` becomes
# "build\r" and equality checks against "build" silently fail.
stage: build
image: registry.example.invalid/ci/runner:1.4

steps:
  - name: compile
    run: make build
  - name: verify
    run: make test

block_scalar: |
  the line breaks inside a block scalar are also CRLF here
  and should normalise to \n in the loaded value

trailing_key: last

Specifications

Line Endings
CRLF
Encoding
UTF-8, no BOM
Keys
6
Edge Case
splitting on \n alone leaves a trailing \r on every plain scalar

Testing contract

Expected to pass
Scenario
Load a CRLF-terminated YAML file and compare a scalar against its expected value
Expected result
stage equals "build" with no trailing carriage return, and the block scalar's internal line breaks normalise to \n

What is a .yaml file?

YAML (YAML Ain't Markup Language) is a human-readable data-serialization format using indentation, key-value pairs, and lists, and is a superset of JSON. It supports comments, anchors, and multiple documents per file, favoring readability for configuration. Its indentation sensitivity makes it error-prone to hand-edit.

How to use this file

Use an example YAML file to test config parsers, indentation and anchor handling, multi-document streams, and safe-loading to avoid arbitrary object construction.

How to use this file for testing

“YAML with CRLF Line Endings” is a deterministic Novus Examples fixture for Config parsing, Encoding detection, Editor testing. TOML and INI configuration files with nested sections and typed values — for testing config parsers and loaders.

Documented properties for this file: UTF-8, no BOM · CRLF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.

Point your config loader at the file and assert it reads the documented sections and typed values, including any deliberately-tricky nesting or comments.

Code examples

import yaml  # pip install pyyaml

with open("crlf-line-endings.yaml") as f:
    data = yaml.safe_load(f)
print(data)

Generated by generation/pipelines.py. Free for any use, no attribution required — license.