Lines Matching +full:meta +full:- +full:spec
1 #!/usr/bin/perl -w
11 use File::Spec;
20 delete $hash->{is_symlink};
21 delete $hash->{lstat};
28 my $source = TAP::Parser::Source->new;
32 qw( raw meta config merge switches test_args assemble_meta )
35 is_deeply( $source->config, {}, 'config empty by default' );
36 $source->config->{Foo} = { bar => 'baz' };
38 $source->config_for('Foo'), { bar => 'baz' },
42 $source->config_for('TAP::Parser::SourceHandler::Foo'),
46 ok( !$source->merge, 'merge not set by default' );
47 $source->merge(1);
48 ok( $source->merge, '... merge now set' );
50 is( $source->switches, undef, 'switches not set by default' );
51 $source->switches( ['-Ilib'] );
52 is_deeply( $source->switches, ['-Ilib'], '... switches now set' );
54 is( $source->test_args, undef, 'test_args not set by default' );
55 $source->test_args( ['foo'] );
56 is_deeply( $source->test_args, ['foo'], '... test_args now set' );
58 $source->raw( \'hello world' );
59 my $meta = $source->assemble_meta;
61 $meta,
70 is( $source->meta, $meta, '... and caches meta' );
75 my $source = TAP::Parser::Source->new;
76 $source->raw( [ 'hello', 'world' ] );
77 my $meta = $source->assemble_meta;
79 $meta,
90 my $source = TAP::Parser::Source->new;
91 $source->raw( { hello => 'world' } );
92 my $meta = $source->assemble_meta;
94 $meta,
104 my $source = TAP::Parser::Source->new;
105 $source->raw( \*__DATA__ );
106 my $meta = $source->assemble_meta;
108 $meta,
118 my $source = TAP::Parser::Source->new;
119 $source->raw( bless {}, 'Foo::Bar' );
120 my $meta = $source->assemble_meta;
122 $meta,
132 my $test = File::Spec->catfile( $dir, 'source.t' );
133 my $source = TAP::Parser::Source->new;
135 $source->raw( \$test );
136 my $meta = $source->assemble_meta;
138 # separate meta->file to break up the test
139 my $file = delete $meta->{file};
141 ct $meta,
153 # now check file meta - remove things that will vary between platforms
154 my $stat = delete $file->{stat};
155 is( @$stat, 13, '... file->stat set' );
156 ok( delete $file->{size}, '... file->size set' );
157 ok( delete $file->{dir}, '... file->dir set' );
158 isnt( delete $file->{read}, undef, '... file->read set' );
159 isnt( delete $file->{write}, undef, '... file->write set' );
160 isnt( delete $file->{execute}, undef, '... file->execute set' );
175 # Fix for bizarre -k bug in Strawberry Perl
176 sticky => ( -k $test )[-1] ? 1 : 0,
177 setgid => -g $test ? 1 : 0,
178 setuid => -u $test ? 1 : 0,
180 '... file->* set'
187 my $source = TAP::Parser::Source->new;
189 $source->raw( \$test );
190 my $meta = $source->assemble_meta;
192 # separate meta->file to break up the test
193 my $file = delete $meta->{file};
195 ct $meta,
207 # now check file meta - remove things that will vary between platforms
208 my $stat = delete $file->{stat};
209 is( @$stat, 13, '... file->stat set' );
210 ok( delete $file->{dir}, '... file->dir set' );
211 isnt( delete $file->{size}, undef, '... file->size set' );
212 isnt( delete $file->{binary}, undef, '... file->binary set' );
213 isnt( delete $file->{empty}, undef, '... file->empty set' );
214 isnt( delete $file->{read}, undef, '... file->read set' );
215 isnt( delete $file->{write}, undef, '... file->write set' );
216 isnt( delete $file->{execute}, undef, '... file->execute set' );
227 sticky => ( -k $test )[-1] ? 1 : 0,
228 setgid => -g $test ? 1 : 0,
229 setuid => -u $test ? 1 : 0,
231 '... file->* set'
242 my $test = File::Spec->catfile( $dir, 'source.t' );
243 my $symlink = File::Spec->catfile( $dir, 'source_link.T' );
244 my $source = TAP::Parser::Source->new;
246 my $did_symlink = eval { symlink( File::Spec->rel2abs($test), $symlink ) };
253 $source->raw( \$symlink );
254 my $meta = $source->assemble_meta;
256 # separate meta->file to break up the test
257 my $file = delete $meta->{file};
259 ct $meta,
271 # now check file meta - remove things that will vary between platforms
272 my $stat = delete $file->{stat};
273 is( @$stat, 13, '... file->stat set' );
274 my $lstat = delete $file->{lstat};
275 is( @$lstat, 13, '... file->lstat set' );
276 ok( delete $file->{size}, '... file->size set' );
277 ok( delete $file->{dir}, '... file->dir set' );
278 isnt( delete $file->{read}, undef, '... file->read set' );
279 isnt( delete $file->{write}, undef, '... file->write set' );
280 isnt( delete $file->{execute}, undef, '... file->execute set' );
294 sticky => ( -k $symlink )[-1] ? 1 : 0,
295 setgid => -g $symlink ? 1 : 0,
296 setuid => -u $symlink ? 1 : 0,
298 '... file->* set'