This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #118923] Add some edge cases to join.t
authorTony Cook <tony@develop-help.com>
Wed, 24 Jul 2013 05:39:46 +0000 (15:39 +1000)
committerTony Cook <tony@develop-help.com>
Wed, 24 Jul 2013 05:39:46 +0000 (15:39 +1000)
AUTHORS
t/op/join.t

diff --git a/AUTHORS b/AUTHORS
index 3cc261b..b5adf21 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1154,6 +1154,7 @@ Ulrich Pfeifer                    <pfeifer@wait.de>
 Vadim Konovalov                        <vkonovalov@lucent.com>
 Valeriy E. Ushakov             <uwe@ptc.spbu.ru>
 Vernon Lyon                    <vlyon@cpan.org>
+Victor Efimov                  <victor@vsespb.ru>
 Ville Skytt√§                  <scop@cs132170.pp.htv.fi>
 Vincent Pit                    <perl@profvince.com>
 Vishal Bhatia                  <vishal@deja.com>
index 9a3dead..f98b5db 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,26 @@ 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');
+  # this warning isn't normative, the implementation may choose to
+  # not evaluate the separator as a string if the list has fewer than
+  # two elements
+  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}";