Remove obsolete details on how to format a patch. Just point to perlrepository instead.
[p5sagit/p5-mst-13.2.git] / t / uni / overload.t
index 9ef4e74..e20a3ab 100644 (file)
@@ -1,13 +1,12 @@
 #!perl -w
 
 BEGIN {
-    if ($ENV{'PERL_CORE'}){
-        chdir 't';
-        @INC = '../lib';
-    }
+    chdir 't';
+    @INC = '../lib';
+    require './test.pl';
 }
 
-use Test::More tests => 208;
+plan(tests => 215);
 
 package UTF8Toggle;
 use strict;
@@ -101,7 +100,7 @@ SKIP: {
        skip "No setlocale", 24;
     } elsif (!setlocale(&POSIX::LC_ALL, "en_GB.ISO8859-1")) {
        skip "Could not setlocale to en_GB.ISO8859-1", 24;
-    } elsif ($^O eq 'dec_osf') {
+    } elsif ($^O eq 'dec_osf' || $^O eq 'VMS') {
        skip "$^O has broken en_GB.ISO8859-1 locale", 24;
     } else {
        use locale;
@@ -151,7 +150,7 @@ SKIP: {
     }
 }
 
-my $tmpfile = 'overload.tmp';
+my $tmpfile = tempfile();
 
 foreach my $operator ('print', 'syswrite', 'syswrite len', 'syswrite off',
                      'syswrite len off') {
@@ -162,6 +161,7 @@ foreach my $operator ('print', 'syswrite', 'syswrite len', 'syswrite off',
        my $u = UTF8Toggle->new("$pad\311\n$trail");
        my $l = UTF8Toggle->new("$pad\351\n$trail", 1);
        if ($operator eq 'print') {
+           no warnings 'utf8';
            print $fh $u;
            print $fh $u;
            print $fh $u;
@@ -210,7 +210,6 @@ foreach my $operator ('print', 'syswrite', 'syswrite len', 'syswrite off',
        is ($line, "\351", "$operator $layer");
 
        close $fh or die $!;
-       unlink $tmpfile or die $!;
     }
 }
 
@@ -263,6 +262,23 @@ foreach my $value ("\243", UTF8Toggle->new("\243")) {
     is (pack ("A/A", $value), pack ("A/A", "\243"));
 }
 
-END {
-    1 while -f $tmpfile and unlink $tmpfile || die "unlink '$tmpfile': $!";
+foreach my $value ("\243", UTF8Toggle->new("\243")) {
+    my $v;
+    $v = substr $value, 0, 1;
+    is ($v, "\243");
+    $v = substr $value, 0, 1;
+    is ($v, "\243");
+    $v = substr $value, 0, 1;
+    is ($v, "\243");
+}
+
+{
+    package RT69422;
+    use overload '""' => sub { $_[0]->{data} }
+}
+
+{
+    my $text = bless { data => "\x{3075}" }, 'RT69422';
+    my $p = substr $text, 0, 1;
+    is ($p, "\x{3075}");
 }