Add unit test t/op/stash_parse_gv.t
authorNicolas R <atoomic@cpan.org>
Fri, 1 Sep 2017 19:32:43 +0000 (13:32 -0600)
committerTony Cook <tony@develop-help.com>
Mon, 4 Sep 2017 23:37:44 +0000 (09:37 +1000)
This test add coverage for long function names
in order to increase test coverage for
S_parse_gv_stash_name function.

MANIFEST
t/op/stash_parse_gv.t [new file with mode: 0644]

index 70b0427..effc466 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -5699,6 +5699,7 @@ t/op/sprintf2.t                   See if sprintf works
 t/op/srand.t                   See if srand works
 t/op/sselect.t                 See if 4 argument select works
 t/op/stash.t                   See if %:: stashes work
+t/op/stash_parse_gv.t          See if parse_gv_stash_name works
 t/op/stat.t                    See if stat works
 t/op/state.t                   See if state variables work
 t/op/study.t                   See if study works
diff --git a/t/op/stash_parse_gv.t b/t/op/stash_parse_gv.t
new file mode 100644 (file)
index 0000000..05694ca
--- /dev/null
@@ -0,0 +1,31 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require "./test.pl";
+    set_up_inc(qw(../lib));
+}
+
+plan( tests => 5 );
+
+my $long  = 'x' x 100;
+my $short = 'abcd';
+
+my @tests = (
+    [ $long, 'long package name: one word' ],
+    [ join( '::', $long, $long ), 'long package name: multiple words' ],
+    [ join( q['], $long, $long ), q[long package name: multiple words using "'" separator] ],
+    [ join( '::', $long, $short, $long ), 'long & short package name: multiple words' ],
+    [ join( q['], $long, $short, $long ), q[long & short package name: multiple words using "'" separator] ],
+);
+
+foreach my $t (@tests) {
+    my ( $sub, $name ) = @$t;
+
+    fresh_perl_is(
+        qq[sub $sub { print qq[ok\n]} &{"$sub"} ],
+        q[ok],
+        { switches => ['-w'] },
+        $name
+    );
+}