use strict;
use lib -e 't' ? 't' : 'test';
use TestYAML tests => 36;
$^W = 1;
use YAML::Error;
filters {
error => 'regexp',
yaml => [mutate_yaml => 'yaml_load_error_or_warning' => 'check_yaml'],
perl => 'perl_eval_error_or_warning',
};
run_like('yaml' => 'error');
run_like('perl' => 'error');
sub mutate_yaml {
s/\Q<%CNTL-G%>\E/\007/;
chomp if /msg_no_newline/;
}
sub check_yaml {
my $yaml = shift;
return $yaml unless ref($yaml);
print "YAML actually loaded:\n" . Data::Dumper::Dumper($yaml);
return '';
}
__DATA__
=== YAML_PARSE_ERR_BAD_CHARS
+++ error: YAML_PARSE_ERR_BAD_CHARS
+++ yaml
# Test msg_bad_chars
---
- foo
# The next line contains an escape character
- bell -><%CNTL-G%><-
=== YAML_PARSE_ERR_NO_FINAL_NEWLINE
+++ error: YAML_PARSE_ERR_NO_FINAL_NEWLINE
+++ yaml
# Test msg_no_newline
---
- one
- two
- three
=== YAML_PARSE_ERR_BAD_MAJOR_VERSION
+++ error: YAML_PARSE_ERR_BAD_MAJOR_VERSION
+++ yaml
# Test msg_bad_major_version
---
- one
- two
--- #YAML:2.0
- foo
- bar
=== YAML_PARSE_WARN_BAD_MINOR_VERSION
+++ error: YAML_PARSE_WARN_BAD_MINOR_VERSION
+++ yaml
# Test msg_bad_minor_version
---
- one
- two
--- #YAML:1.5
- foo
- bar
=== YAML_PARSE_WARN_MULTIPLE_DIRECTIVES
+++ error: YAML_PARSE_WARN_MULTIPLE_DIRECTIVES
+++ yaml
# Test msg_multiple_directives
--- #YAML:1.0 #YAML:1.0
- foo
--- #FOO:2 #FOO:3
- bar
=== YAML_PARSE_ERR_TEXT_AFTER_INDICATOR
+++ error: YAML_PARSE_ERR_TEXT_AFTER_INDICATOR
+++ yaml
# Test msg_text_after_indicator
---
- >
This is OK.
- > But this is not
- This is OK
=== YAML_PARSE_ERR_NO_ANCHOR
+++ error: YAML_PARSE_ERR_NO_ANCHOR
+++ yaml
# Test msg_no_anchor
---
- &moo foo
- bar
- *star
- &star far
=== YAML_PARSE_ERR_INCONSISTENT_INDENTATION
+++ error: YAML_PARSE_ERR_INCONSISTENT_INDENTATION
+++ yaml
--- {foo: bar}
- foo
- bar
=== YAML_PARSE_ERR_SINGLE_LINE
+++ error: YAML_PARSE_ERR_SINGLE_LINE
+++ yaml
---
- "foo" bar
=== YAML_PARSE_ERR_BAD_ANCHOR
+++ error: YAML_PARSE_ERR_BAD_ANCHOR
+++ yaml
---
- &X=y 42
#---
#error: YAML_PARSE_ERR_BAD_NODEX
#load: |
#---
#error: YAML_PARSE_ERR_BAD_EXPLICITX
#load: |
# I don't think this one can ever happen (yet)
#---
#error: YAML_DUMP_USAGE_DUMPCODE
#code: |
# local $YAML::DumpCode = [0];
# Dump(sub { $foo + 42 });
=== YAML_LOAD_ERR_FILE_INPUT
+++ error: YAML_LOAD_ERR_FILE_INPUT
+++ perl
LoadFile('fooxxx');
# XXX - Causing bus error!?!?
#---
#error: YAML_DUMP_ERR_FILE_CONCATENATE
#code: |
# DumpFile(">> YAML.pod", 42);
=== YAML_DUMP_ERR_FILE_OUTPUT
+++ error: YAML_DUMP_ERR_FILE_OUTPUT
+++ perl
Test::YAML::DumpFile("x/y/z.yaml", 42);
=== YAML_DUMP_ERR_NO_HEADER
+++ error: YAML_DUMP_ERR_NO_HEADER
+++ perl
local $YAML::UseHeader = 0;
Test::YAML::Dump(42);
=== YAML_DUMP_ERR_NO_HEADER
+++ error: YAML_DUMP_ERR_NO_HEADER
+++ perl
local $YAML::UseHeader = 0;
Test::YAML::Dump([]);
=== YAML_DUMP_ERR_NO_HEADER
+++ error: YAML_DUMP_ERR_NO_HEADER
+++ perl
local $YAML::UseHeader = 0;
Test::YAML::Dump({});
#---
#error: xYAML_DUMP_WARN_BAD_NODE_TYPE
#code: |
# #
#---
#error: YAML_EMIT_WARN_KEYS
#code: |
# #
#---
#error: YAML_DUMP_WARN_DEPARSE_FAILED
#code: |
# #
#---
#error: YAML_DUMP_WARN_CODE_DUMMY
#code: |
# Dump(sub{ 42 });
=== YAML_PARSE_ERR_MANY_EXPLICIT
+++ error: YAML_PARSE_ERR_MANY_EXPLICIT
+++ yaml
---
- !foo !bar 42
=== YAML_PARSE_ERR_MANY_IMPLICIT
+++ error: YAML_PARSE_ERR_MANY_IMPLICIT
+++ yaml
---
- ! ! "42"
=== YAML_PARSE_ERR_MANY_ANCHOR
+++ error: YAML_PARSE_ERR_MANY_ANCHOR
+++ yaml
---
- &foo &bar 42
=== YAML_PARSE_ERR_ANCHOR_ALIAS
+++ error: YAML_PARSE_ERR_ANCHOR_ALIAS
+++ yaml
---
- &bar *foo
=== YAML_PARSE_ERR_BAD_ALIAS
+++ error: YAML_PARSE_ERR_BAD_ALIAS
+++ yaml
---
- *foo=bar
=== YAML_PARSE_ERR_MANY_ALIAS
+++ error: YAML_PARSE_ERR_MANY_ALIAS
+++ yaml
---
- *foo *bar
=== YAML_LOAD_ERR_NO_CONVERT
+++ SKIP
Actually this should load into a ynode...
+++ error: YAML_LOAD_ERR_NO_CONVERT
+++ yaml
---
- !foo shoe
=== YAML_LOAD_ERR_NO_DEFAULT_VALUE
+++ error: YAML_LOAD_ERR_NO_DEFAULT_VALUE
+++ yaml
---
- !perl/ref
foo: bar
#---
#error: YAML_LOAD_ERR_NON_EMPTY_STRING
#load: |
# ---
# - !map foo
#---
#error: YAML_LOAD_ERR_NON_EMPTY_STRING
#load: |
# ---
# - !seq foo
#---
#error: YAML_LOAD_ERR_BAD_MAP_TO_SEQ
#load: |
# --- !seq
# 0: zero
# won: one
# 2: two
# 3: three
#---
#error: YAML_LOAD_ERR_BAD_GLOB
#load: |
# #
#---
#error: YAML_LOAD_ERR_BAD_REGEXP
#load: |
# #
=== YAML_LOAD_ERR_BAD_MAP_ELEMENT
+++ error: YAML_LOAD_ERR_BAD_MAP_ELEMENT
+++ yaml
---
foo: bar
bar
=== YAML_LOAD_WARN_DUPLICATE_KEY
+++ error: YAML_LOAD_WARN_DUPLICATE_KEY
+++ yaml
---
foo: bar
bar: boo
foo: baz
boo: bah
=== YAML_LOAD_ERR_BAD_SEQ_ELEMENT
+++ error: YAML_LOAD_ERR_BAD_SEQ_ELEMENT
+++ yaml
---
- 42
foo
=== YAML_PARSE_ERR_INLINE_MAP
+++ error: YAML_PARSE_ERR_INLINE_MAP
+++ yaml
---
- {foo:bar}
=== YAML_PARSE_ERR_INLINE_SEQUENCE
+++ error: YAML_PARSE_ERR_INLINE_SEQUENCE
+++ yaml
---
- [foo bar, baz
=== YAML_PARSE_ERR_BAD_DOUBLE
+++ error: YAML_PARSE_ERR_BAD_DOUBLE
+++ yaml
---
- "foo baz
=== YAML_PARSE_ERR_BAD_SINGLE
+++ error: YAML_PARSE_ERR_BAD_SINGLE
+++ yaml
---
- 'foo bar
=== YAML_PARSE_ERR_BAD_INLINE_IMPLICIT
+++ error: YAML_PARSE_ERR_BAD_INLINE_IMPLICIT
+++ yaml
---
- [^gold]
=== YAML_PARSE_ERR_BAD_IMPLICIT
+++ error: YAML_PARSE_ERR_BAD_IMPLICIT
+++ yaml
--- ! >
- 4 foo bar
#---
#error: xYAML_PARSE_ERR_INDENTATION
#load: |
# ---
=== YAML_PARSE_ERR_INCONSISTENT_INDENTATION
+++ error: YAML_PARSE_ERR_INCONSISTENT_INDENTATION
+++ yaml
---
foo: bar
bar: baz
#---
#error: xYAML_LOAD_WARN_UNRESOLVED_ALIAS
#load: |
# ---
# foo: *bar
# === YAML_LOAD_WARN_NO_REGEXP_IN_REGEXP
# +++ error: YAML_LOAD_WARN_NO_REGEXP_IN_REGEXP
# +++ yaml
# ---
# - !perl/regexp:
# foo: bar
#
# === YAML_LOAD_WARN_BAD_REGEXP_ELEM
# +++ error: YAML_LOAD_WARN_BAD_REGEXP_ELEM
# +++ yaml
# ---
# - !perl/regexp:
# REGEXP: foo
# foo: bar
=== YAML_LOAD_WARN_GLOB_NAME
+++ error: YAML_LOAD_WARN_GLOB_NAME
+++ yaml
---
- !perl/glob:
foo: bar
#---
#error: xYAML_LOAD_WARN_PARSE_CODE
#load: |
# ---
#---
#error: YAML_LOAD_WARN_CODE_DEPARSE
#load: |
# ---
# - !perl/code |
# sub { "foo" }
#---
#error: xYAML_EMIT_ERR_BAD_LEVEL
#code:
# #
#---
#error: YAML_PARSE_WARN_AMBIGUOUS_TAB
#load: |
# ---
# - |
# foo
# bar
=== YAML_LOAD_WARN_BAD_GLOB_ELEM
+++ error: YAML_LOAD_WARN_BAD_GLOB_ELEM
+++ yaml
---
- !perl/glob:
NAME: foo
bar: SHAME
=== YAML_PARSE_ERR_ZERO_INDENT
+++ error: YAML_PARSE_ERR_ZERO_INDENT
+++ yaml
---
- |0
foo
=== YAML_PARSE_ERR_NONSPACE_INDENTATION
+++ error: YAML_PARSE_ERR_NONSPACE_INDENTATION
+++ yaml
---
some:
data-preceded-with-tab: abc