1use warnings; 2use strict; 3 4use Test::More tests => 32; 5 6use Carp (); 7 8sub lmm { Carp::longmess("x") } 9sub lm { lmm() } 10 11like lm(3), qr/main::lm\(3\)/; 12like lm(substr("3\x{2603}", 0, 1)), qr/main::lm\(3\)/; 13like lm(-3), qr/main::lm\(-3\)/; 14like lm(-3.5), qr/main::lm\(-3\.5\)/; 15like lm(-3.5e100), qr/main::lm\(-3\.5[eE]\+?100\)/; 16like lm(""), qr/main::lm\(""\)/; 17like lm("foo"), qr/main::lm\("foo"\)/; 18like lm("a\$b\@c\\d\"e"), qr/main::lm\("a\\\$b\\\@c\\\\d\\\"e"\)/; 19like lm("a\nb"), qr/main::lm\("a\\x\{a\}b"\)/; 20like lm("a\x{666}b"), qr/main::lm\("a\\x\{666\}b"\)/; 21like lm("\x{666}b"), qr/main::lm\("\\x\{666\}b"\)/; 22like lm("a\x{666}"), qr/main::lm\("a\\x\{666\}"\)/; 23like lm("L\xe9on"), qr/main::lm\("L\\x\{e9\}on"\)/; 24like lm("L\xe9on \x{2603} !"), qr/main::lm\("L\\x\{e9\}on \\x\{2603\} !"\)/; 25 26$Carp::MaxArgLen = 5; 27foreach my $arg ("foo bar baz", "foo bar ba", "foo bar b", "foo bar ", "foo bar", "foo ba") { 28 like lm($arg), qr/main::lm\("fo"\.\.\.\)/; 29} 30foreach my $arg ("foo b", "foo ", "foo", "fo", "f", "") { 31 like lm($arg), qr/main::lm\("\Q$arg\E"\)/; 32} 33like lm("L\xe9on \x{2603} !"), qr/main::lm\("L\\x\{e9\}"\.\.\.\)/; 34like lm("L\xe9on\x{2603}"), qr/main::lm\("L\\x\{e9\}on\\x\{2603\}"\)/; 35like lm("foo\x{2603}"), qr/main::lm\("foo\\x\{2603\}"\)/; 36 37$Carp::MaxArgLen = 0; 38foreach my $arg ("wibble." x 20, "foo bar baz") { 39 like lm($arg), qr/main::lm\("\Q$arg\E"\)/; 40} 41like lm("L\xe9on\x{2603}"), qr/main::lm\("L\\x\{e9\}on\\x\{2603\}"\)/; 42 431; 44