chiark / gitweb /
3ea025beec8edbcf99719713d4e96a194a4aeb38
[nailing-cargo.git] / t / toml-test / valid / comments-everywhere.t
1 # File automatically generated from BurntSushi/toml-test
2 use utf8;
3 use Test2::V0;
4 use Data::Dumper;
5 use TOML::Tiny;
6
7 binmode STDIN,  ':encoding(UTF-8)';
8 binmode STDOUT, ':encoding(UTF-8)';
9
10 my $expected1 = {
11                'group' => {
12                             'answer' => bless( {
13                                                  'operator' => 'CODE(...)',
14                                                  'name' => '<Custom Code>',
15                                                  'code' => sub {
16                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
17                                                                use strict;
18                                                                no feature ':all';
19                                                                use feature ':5.16';
20                                                                require Math::BigInt;
21                                                                'Math::BigInt'->new('42')->beq($_);
22                                                            },
23                                                  '_lines' => [
24                                                                6
25                                                              ],
26                                                  '_file' => '(eval 366)'
27                                                }, 'Test2::Compare::Custom' ),
28                             'more' => [
29                                         bless( {
30                                                  '_file' => '(eval 367)',
31                                                  'name' => '<Custom Code>',
32                                                  'operator' => 'CODE(...)',
33                                                  '_lines' => [
34                                                                6
35                                                              ],
36                                                  'code' => sub {
37                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
38                                                                use strict;
39                                                                no feature ':all';
40                                                                use feature ':5.16';
41                                                                require Math::BigInt;
42                                                                'Math::BigInt'->new('42')->beq($_);
43                                                            }
44                                                }, 'Test2::Compare::Custom' ),
45                                         bless( {
46                                                  '_lines' => [
47                                                                6
48                                                              ],
49                                                  'code' => sub {
50                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
51                                                                use strict;
52                                                                no feature ':all';
53                                                                use feature ':5.16';
54                                                                require Math::BigInt;
55                                                                'Math::BigInt'->new('42')->beq($_);
56                                                            },
57                                                  'operator' => 'CODE(...)',
58                                                  'name' => '<Custom Code>',
59                                                  '_file' => '(eval 368)'
60                                                }, 'Test2::Compare::Custom' )
61                                       ]
62                           }
63              };
64
65
66 my $actual = from_toml(q{# Top comment.
67   # Top comment.
68 # Top comment.
69
70 # [no-extraneous-groups-please]
71
72 [group] # Comment
73 answer = 42 # Comment
74 # no-extraneous-keys-please = 999
75 # Inbetween comment.
76 more = [ # Comment
77   # What about multiple # comments?
78   # Can you handle it?
79   #
80           # Evil.
81 # Evil.
82   42, 42, # Comments within arrays are fun.
83   # What about multiple # comments?
84   # Can you handle it?
85   #
86           # Evil.
87 # Evil.
88 # ] Did I fool you?
89 ] # Hopefully not.
90 });
91
92 is($actual, $expected1, 'comments-everywhere - from_toml') or do{
93   diag 'EXPECTED:';
94   diag Dumper($expected1);
95
96   diag 'ACTUAL:';
97   diag Dumper($actual);
98 };
99
100 is(eval{ from_toml(to_toml($actual)) }, $actual, 'comments-everywhere - to_toml') or do{
101   diag 'INPUT:';
102   diag Dumper($actual);
103
104   diag 'TOML OUTPUT:';
105   diag to_toml($actual);
106
107   diag 'REPARSED OUTPUT:';
108   diag Dumper(from_toml(to_toml($actual)));
109 };
110
111 done_testing;