summaryrefslogtreecommitdiff
path: root/t/op/caller.t
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-04-12 22:49:58 +0000
committerNicholas Clark <nick@ccl4.org>2006-04-12 22:49:58 +0000
commit968f0fcb6eaf743ef3c5200ddfe6f64fde094d47 (patch)
treeb7c293c2d279f7b75ca7759405eecfbc581b13a5 /t/op/caller.t
parent72dc9ed5af65c946f73050becea29207a1af86c1 (diff)
downloadperl-968f0fcb6eaf743ef3c5200ddfe6f64fde094d47.tar.gz
Add tests for all the other types that %^H serialisation is supposed
to support. In the process, found and corrected a bug. Tests are good, m'kay. p4raw-id: //depot/perl@27780
Diffstat (limited to 't/op/caller.t')
-rw-r--r--t/op/caller.t37
1 files changed, 36 insertions, 1 deletions
diff --git a/t/op/caller.t b/t/op/caller.t
index c32b044507..d0716be4a7 100644
--- a/t/op/caller.t
+++ b/t/op/caller.t
@@ -5,7 +5,7 @@ BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
require './test.pl';
- plan( tests => 65 );
+ plan( tests => 71 );
}
my @c;
@@ -231,4 +231,39 @@ EOE
$^H{dooot} = "FIP\0FOP\0FIDDIT\0FAP";
}
is(get_dooot(), "FIP\0FOP\0FIDDIT\0FAP", "Can do embedded 0 bytes");
+
+ BEGIN {
+ $^H{dooot} = chr 256;
+ }
+ is(get_dooot(), chr 256, "Can do Unicode");
+
+ BEGIN {
+ $^H{dooot} = -42;
+ }
+ is(get_dooot(), -42, "Can do IVs");
+
+ BEGIN {
+ $^H{dooot} = ~0;
+ }
+ cmp_ok(get_dooot(), '>', 42, "Can do UVs");
+}
+
+{
+ my ($k1, $k2, $k3);
+ BEGIN {
+ $k1 = chr 163;
+ $k2 = $k1;
+ $k3 = $k1;
+ utf8::upgrade $k2;
+ utf8::encode $k3;
+
+ $^H{$k1} = 1;
+ $^H{$k2} = 2;
+ $^H{$k3} = 3;
+ }
+
+
+ is(get_hash()->{$k1}, 2, "UTF-8 or not, it's the same");
+ is(get_hash()->{$k2}, 2, "UTF-8 or not, it's the same");
+ is(get_hash()->{$k3}, 3, "Octect sequences and UTF-8 are distinct");
}