Add some edge cases to join.t test
authorVictor Efimov <victor@vsespb.ru>
Tue, 16 Jul 2013 16:39:12 +0000 (20:39 +0400)
committerTony Cook <tony@develop-help.com>
Wed, 24 Jul 2013 05:33:04 +0000 (15:33 +1000)
test what join return if called with empty LIST, also
test that it produce warning if separator is undef

t/op/join.t

index 9a3dead..477c479 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 22;
+plan tests => 26;
 
 @x = (1, 2, 3);
 is( join(':',@x), '1:2:3', 'join an array with character');
@@ -63,6 +63,23 @@ is( $f, 'baeak', 'join back to self, self is join character');
   is( $s, "\x{1234}\x{ff}\x{fe}", 'high byte as separator, multi-byte and high byte list');
 }
 
+{ my $s = join('x', ());
+  is( $s, '', 'join should return empty string for empty list');
+}
+
+{ my $s = join('', ());
+  is( $s, '', 'join should return empty string for empty list and empty separator as well');
+}
+
+{ my $w;
+  local $SIG{__WARN__} = sub { $w = shift };
+  use warnings "uninitialized";
+  my $s = join(undef, ());
+  is( $s, '', 'join should return empty string for empty list, when separator is undef');
+  like $w, qr/^Use of uninitialized value in join/, "should warn if separator is undef";
+}
+
+
 { # [perl #24846] $jb2 should be in bytes, not in utf8.
   my $b = "abc\304";
   my $u = "abc\x{0100}";