use libyaml_safer::Parser;
#[test]
fn first_position() {
const INVALID_YAML: &str = "\t";
let mut parser = Parser::new();
let mut input = INVALID_YAML.as_bytes();
parser.set_input_string(&mut input);
let result = parser.collect::<Result<Vec<_>, _>>();
assert!(result.is_err(), "Expected parsing to fail for invalid YAML");
let err = result.unwrap_err();
let mark = err.problem_mark().unwrap();
let mark_str = mark.to_string();
eprintln!("Problem mark: {}", mark_str);
assert_eq!(mark_str, "line 1 column 1");
}
#[test]
fn multiline_error() {
const INVALID_YAML: &str = "---\nkey: \"missing closing quote";
let mut parser = Parser::new();
let mut input = INVALID_YAML.as_bytes();
parser.set_input_string(&mut input);
let result = parser.collect::<Result<Vec<_>, _>>();
assert!(result.is_err(), "Expected parsing to fail for invalid YAML");
let err = result.unwrap_err();
let mark = err.problem_mark().unwrap();
let mark_str = mark.to_string();
eprintln!("Problem mark: {}", mark_str);
assert_eq!(mark_str, "line 2 column 28");
}