summaryrefslogtreecommitdiff
path: root/lib/ExtUtils/ParseXS/t/usage.t
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ExtUtils/ParseXS/t/usage.t')
-rw-r--r--lib/ExtUtils/ParseXS/t/usage.t125
1 files changed, 0 insertions, 125 deletions
diff --git a/lib/ExtUtils/ParseXS/t/usage.t b/lib/ExtUtils/ParseXS/t/usage.t
deleted file mode 100644
index 39a6e4157f..0000000000
--- a/lib/ExtUtils/ParseXS/t/usage.t
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/perl
-
-BEGIN {
- if ($ENV{PERL_CORE}) {
- chdir 't' if -d 't';
- chdir '../lib/ExtUtils/ParseXS'
- or die "Can't chdir to lib/ExtUtils/ParseXS: $!";
- @INC = qw(../.. ../../.. .);
- }
-}
-use strict;
-use Test::More;
-use Config;
-use DynaLoader;
-use ExtUtils::CBuilder;
-
-if ( $] < 5.008 ) {
- plan skip_all => "INTERFACE keyword support broken before 5.8";
-}
-else {
- plan tests => 24;
-}
-
-my ($source_file, $obj_file, $lib_file, $module);
-
-require_ok( 'ExtUtils::ParseXS' );
-ExtUtils::ParseXS->import('process_file');
-
-chdir 't' or die "Can't chdir to t/, $!";
-
-use Carp; $SIG{__WARN__} = \&Carp::cluck;
-
-#########################
-
-$source_file = 'XSUsage.c';
-
-# Try sending to file
-process_file(filename => 'XSUsage.xs', output => $source_file);
-ok -e $source_file, "Create an output file";
-
-# TEST doesn't like extraneous output
-my $quiet = $ENV{PERL_CORE} && !$ENV{HARNESS_ACTIVE};
-
-# Try to compile the file! Don't get too fancy, though.
-my $b = ExtUtils::CBuilder->new(quiet => $quiet);
-
-SKIP: {
- skip "no compiler available", 2
- if ! $b->have_compiler;
- $module = 'XSUsage';
-
- $obj_file = $b->compile( source => $source_file );
- ok $obj_file;
- ok -e $obj_file, "Make sure $obj_file exists";
-}
-SKIP: {
- skip "no dynamic loading", 20
- if !$b->have_compiler || !$Config{usedl};
-
- $lib_file = $b->link( objects => $obj_file, module_name => $module );
- ok $lib_file;
- ok -e $lib_file, "Make sure $lib_file exists";
-
- eval {require XSUsage};
- is $@, '';
-
- # The real tests here - for each way of calling the functions, call with the
- # wrong number of arguments and check the Usage line is what we expect
-
- eval { XSUsage::one(1) };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::one/;
-
- eval { XSUsage::two(1) };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::two/;
-
- eval { XSUsage::two_x(1) };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::two_x/;
-
- eval { FOO::two(1) };
- ok $@;
- ok $@ =~ /^Usage: FOO::two/;
-
- eval { XSUsage::three(1) };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::three/;
-
- eval { XSUsage::four(1) };
- ok !$@;
-
- eval { XSUsage::five() };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::five/;
-
- eval { XSUsage::six() };
- ok !$@;
-
- eval { XSUsage::six(1) };
- ok !$@;
-
- eval { XSUsage::six(1,2) };
- ok $@;
- ok $@ =~ /^Usage: XSUsage::six/;
-
- # 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;
- }
- }
- }
-}
-
-unless ($ENV{PERL_NO_CLEANUP}) {
- for ( $obj_file, $lib_file, $source_file) {
- next unless defined $_;
- 1 while unlink $_;
- }
-}
-