A new test by Abigail: Check that certain modules don't
Rafael Garcia-Suarez [Thu, 1 Mar 2007 10:30:04 +0000 (10:30 +0000)]
get loaded when other modules are used.

p4raw-id: //depot/perl@30435

MANIFEST
t/lib/no_load.t [new file with mode: 0644]

index 8e0559f..02db239 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3415,6 +3415,7 @@ t/lib/Math/BigInt/Subclass.pm     Empty subclass of BigInt for test
 t/lib/Math/BigRat/Test.pm              Math::BigRat test helper
 t/lib/mypragma.pm              An example user pragma
 t/lib/mypragma.t               Test the example user pragma
+t/lib/no_load.t                        Test that some modules don't load others
 t/lib/NoExporter.pm                    Part of Test-Simple
 t/lib/proxy_constant_subs.t    Test that Proxy Constant Subs behave correctly
 t/lib/sample-tests/bailout             Test data for Test::Harness
diff --git a/t/lib/no_load.t b/t/lib/no_load.t
new file mode 100644 (file)
index 0000000..3f10200
--- /dev/null
@@ -0,0 +1,41 @@
+#!./perl
+#
+# Check that certain modules don't get loaded when other modules are used.
+#
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = qw(. ../lib);
+}
+
+use strict;
+use warnings;
+
+require "test.pl";
+
+#
+# Format: [Module-that-should-not-be-loaded => modules to test]
+#
+my @TESTS = (
+    [Carp  => qw [warnings Exporter]],
+);
+
+my $count = 0;
+$count += @$_ - 1 for @TESTS;
+
+print "1..$count\n";
+
+foreach my $test (@TESTS) {
+    my ($exclude, @modules) = @$test;
+
+    foreach my $module (@modules) {
+        my $prog = <<"        --";
+            use $module;
+            print exists \$INC {'$exclude.pm'} ? "not ok" : "ok";
+        --
+        fresh_perl_is ($prog, "ok", "", "$module does not load $exclude");
+    }
+}
+
+
+__END__