Linux cpanel2.daytoncreative.net 2.6.32-754.29.2.el6.x86_64 #1 SMP Tue May 12 17:39:04 UTC 2020 x86_64
Apache/2.4.43 (cPanel) OpenSSL/1.1.1g mod_bwlimited/1.4
Server IP : 70.62.220.67 & Your IP : 216.73.216.193
Domains :
Cant Read [ /etc/named.conf ]
User : michaelgreg
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
log /
perl-5.20.2 /
dist /
ExtUtils-ParseXS /
t /
Delete
Unzip
Name
Size
Permission
Date
Action
data
[ DIR ]
drwxr-xr-x
2015-02-14 16:56
lib
[ DIR ]
drwxr-xr-x
2015-02-14 16:56
001-basic.t
4.94
KB
-r--r--r--
2014-12-27 11:48
002-more.t
3.61
KB
-r--r--r--
2014-12-27 11:48
003-usage.t
2.65
KB
-r--r--r--
2014-12-27 11:48
101-standard_typemap_locations.t
1.14
KB
-r--r--r--
2014-12-27 11:48
102-trim_whitespace.t
613
B
-r--r--r--
2014-12-27 11:48
103-tidy_type.t
654
B
-r--r--r--
2014-12-27 11:48
104-map_type.t
2.21
KB
-r--r--r--
2014-12-27 11:48
105-valid_proto_string.t
837
B
-r--r--r--
2014-12-27 11:48
106-process_typemaps.t
1.36
KB
-r--r--r--
2014-12-27 11:48
108-map_type.t
377
B
-r--r--r--
2014-12-27 11:48
109-standard_XS_defs.t
588
B
-r--r--r--
2014-12-27 11:49
110-assign_func_args.t
1.34
KB
-r--r--r--
2014-12-27 11:48
111-analyze_preprocessor_statements.t
367
B
-r--r--r--
2014-12-27 11:48
112-set_cond.t
171
B
-r--r--r--
2014-12-27 11:48
113-check_cond_preproc_statements.t
4.43
KB
-r--r--r--
2014-12-27 11:48
114-blurt_death_Warn.t
2.77
KB
-r--r--r--
2014-12-27 11:48
115-avoid-noise.t
536
B
-r--r--r--
2014-12-27 11:48
501-t-compile.t
221
B
-r--r--r--
2014-12-27 11:48
510-t-bare.t
4.88
KB
-r--r--r--
2014-12-27 11:48
511-t-whitespace.t
886
B
-r--r--r--
2014-12-27 11:48
512-t-file.t
1.75
KB
-r--r--r--
2014-12-27 11:48
513-t-merge.t
3.44
KB
-r--r--r--
2014-12-27 11:48
514-t-embed.t
381
B
-r--r--r--
2014-12-27 11:48
515-t-cmd.t
1.99
KB
-r--r--r--
2014-12-27 11:48
516-t-clone.t
1.38
KB
-r--r--r--
2014-12-27 11:48
517-t-targetable.t
5.17
KB
-r--r--r--
2014-12-27 11:48
600-t-compat.t
4.83
KB
-r--r--r--
2014-12-27 11:48
XSInclude.xsh
85
B
-r--r--r--
2014-12-27 11:48
XSMore.xs
2.69
KB
-r--r--r--
2014-12-27 11:48
XSTest.pm
119
B
-r--r--r--
2014-12-27 11:48
XSTest.xs
1.2
KB
-r--r--r--
2014-12-27 11:48
XSUsage.pm
117
B
-r--r--r--
2014-12-27 11:48
XSUsage.xs
1.02
KB
-r--r--r--
2014-12-27 11:48
XSWarn.xs
219
B
-r--r--r--
2014-12-27 11:48
pseudotypemap1
130
B
-r--r--r--
2014-12-27 11:48
typemap
7.45
KB
-r--r--r--
2014-12-27 11:48
Save
Rename
#!/usr/bin/perl use strict; use Test::More tests => 17; use Config; use DynaLoader; use ExtUtils::CBuilder; my ($source_file, $obj_file, $lib_file); require_ok( 'ExtUtils::ParseXS' ); chdir('t') if -d 't'; use Carp; $SIG{__WARN__} = \&Carp::cluck; # Some trickery for Android. If we leave @INC as-is, it'll have '.' in it. # Later on, the 'require XSTest' end up in DynaLoader looking for # ./PL_XSTest.so, but unless our current directory happens to be in # LD_LIBRARY_PATH, Android's linker will never find the file, and the test # will fail. Instead, if we have all absolute paths, it'll just work. @INC = map { File::Spec->rel2abs($_) } @INC if $^O =~ /android/; ######################### { # first block: try without linenumbers my $pxs = ExtUtils::ParseXS->new; # Try sending to filehandle tie *FH, 'Foo'; $pxs->process_file( filename => 'XSTest.xs', output => \*FH, prototypes => 1 ); like tied(*FH)->content, '/is_even/', "Test that output contains some text"; $source_file = 'XSTest.c'; # Try sending to file $pxs->process_file(filename => 'XSTest.xs', output => $source_file, prototypes => 0); ok -e $source_file, "Create an output file"; my $quiet = $ENV{PERL_CORE} && !$ENV{HARNESS_ACTIVE}; my $b = ExtUtils::CBuilder->new(quiet => $quiet); SKIP: { skip "no compiler available", 2 if ! $b->have_compiler; $obj_file = $b->compile( source => $source_file ); ok $obj_file, "ExtUtils::CBuilder::compile() returned true value"; ok -e $obj_file, "Make sure $obj_file exists"; } SKIP: { skip "no dynamic loading", 5 if !$b->have_compiler || !$Config{usedl}; my $module = 'XSTest'; $lib_file = $b->link( objects => $obj_file, module_name => $module ); ok $lib_file, "ExtUtils::CBuilder::link() returned true value"; ok -e $lib_file, "Make sure $lib_file exists"; eval {require XSTest}; is $@, '', "No error message recorded, as expected"; ok XSTest::is_even(8), "Function created thru XS returned expected true value"; ok !XSTest::is_even(9), "Function created thru XS returned expected false value"; # Win32 needs to close the DLL before it can unlink it, but unfortunately # dl_unload_file was missing on Win32 prior to perl change #24679! if ($^O eq 'MSWin32' and defined &DynaLoader::dl_unload_file) { for (my $i = 0; $i < @DynaLoader::dl_modules; $i++) { if ($DynaLoader::dl_modules[$i] eq $module) { DynaLoader::dl_unload_file($DynaLoader::dl_librefs[$i]); last; } } } } my $seen = 0; open my $IN, '<', $source_file or die "Unable to open $source_file: $!"; while (my $l = <$IN>) { $seen++ if $l =~ m/#line\s1\s/; } is( $seen, 1, "Line numbers created in output file, as intended" ); { #rewind .c file and regexp it to look for code generation problems local $/ = undef; seek($IN, 0, 0); my $filecontents = <$IN>; my $good_T_BOOL_re = qr|\QXS_EUPXS(XS_XSTest_T_BOOL)\E .+? #line \d+\Q "XSTest.c" ST(0) = boolSV(RETVAL); } XSRETURN(1); } \E|s; like($filecontents, $good_T_BOOL_re, "T_BOOL doesn\'t have an extra sv_newmortal or sv_2mortal"); my $good_T_BOOL_2_re = qr|\QXS_EUPXS(XS_XSTest_T_BOOL_2)\E .+? #line \d+\Q "XSTest.c" sv_setsv(ST(0), boolSV(in)); SvSETMAGIC(ST(0)); } XSRETURN(1); } \E|s; like($filecontents, $good_T_BOOL_2_re, 'T_BOOL_2 doesn\'t have an extra sv_newmortal or sv_2mortal'); my $good_T_BOOL_OUT_re = qr|\QXS_EUPXS(XS_XSTest_T_BOOL_OUT)\E .+? #line \d+\Q "XSTest.c" sv_setsv(ST(0), boolSV(out)); SvSETMAGIC(ST(0)); } XSRETURN_EMPTY; } \E|s; like($filecontents, $good_T_BOOL_OUT_re, 'T_BOOL_OUT doesn\'t have an extra sv_newmortal or sv_2mortal'); } close $IN or die "Unable to close $source_file: $!"; unless ($ENV{PERL_NO_CLEANUP}) { for ( $obj_file, $lib_file, $source_file) { next unless defined $_; 1 while unlink $_; } } } ##################################################################### { # second block: try with linenumbers my $pxs = ExtUtils::ParseXS->new; # Try sending to filehandle tie *FH, 'Foo'; $pxs->process_file( filename => 'XSTest.xs', output => \*FH, prototypes => 1, linenumbers => 0, ); like tied(*FH)->content, '/is_even/', "Test that output contains some text"; $source_file = 'XSTest.c'; # Try sending to file $pxs->process_file( filename => 'XSTest.xs', output => $source_file, prototypes => 0, linenumbers => 0, ); ok -e $source_file, "Create an output file"; my $seen = 0; open my $IN, '<', $source_file or die "Unable to open $source_file: $!"; while (my $l = <$IN>) { $seen++ if $l =~ m/#line\s1\s/; } close $IN or die "Unable to close $source_file: $!"; is( $seen, 0, "No linenumbers created in output file, as intended" ); unless ($ENV{PERL_NO_CLEANUP}) { for ( $obj_file, $lib_file, $source_file) { next unless defined $_; 1 while unlink $_; } } } ##################################################################### sub Foo::TIEHANDLE { bless {}, 'Foo' } sub Foo::PRINT { shift->{buf} .= join '', @_ } sub Foo::content { shift->{buf} }