Cross Reference: sprintf2.t
xref
: /
osnet-11
/
usr
/
src
/
cmd
/
perl
/
5.8.4
/
distrib
/
t
/
op
/
sprintf2.t
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
1
N/A
#!./perl -w
1
N/A
1
N/A
BEGIN
{
1
N/A
chdir
't'
if
-d
't'
;
1
N/A
@
INC
=
'../lib'
;
1
N/A
require
'./
test.pl
'
;
1
N/A
}
1
N/A
1
N/A
plan
tests
=>
7
+
256
;
1
N/A
1
N/A
is
(
1
N/A
sprintf
(
"%.40g "
,
0.01
)
,
1
N/A
sprintf
(
"%.40g"
,
0.01
)
.
" "
,
1
N/A
q
(
the
sprintf
"%.<number>g"
optimization
)
1
N/A
)
;
1
N/A
is
(
1
N/A
sprintf
(
"%.40f "
,
0.01
)
,
1
N/A
sprintf
(
"%.40f"
,
0.01
)
.
" "
,
1
N/A
q
(
the
sprintf
"%.<number>f"
optimization
)
1
N/A
)
;
1
N/A
{
1
N/A
chop
(
my
$utf8_format
=
"%-3s\x{100}"
)
;
1
N/A
is
(
1
N/A
sprintf
(
$utf8_format
,
"\xe4"
)
,
1
N/A
"\xe4 "
,
1
N/A
q
(
width
calculation
under
utf8
upgrade
)
1
N/A
)
;
1
N/A
}
1
N/A
1
N/A
# Used to mangle PL_sv_undef
1
N/A
fresh_perl_is
(
1
N/A
'print sprintf "xxx%n\n"; print undef'
,
1
N/A
'Modification of a read-only value attempted at - line 1.'
,
1
N/A
{
switches
=> [
'-w'
] },
1
N/A
q
(%n
should
not
be
able
to
modify
read
-
only
constants
)
,
1
N/A
);
1
N/A
1
N/A
# check %NNN$ for range bounds, especially negative 2's complement
1
N/A
1
N/A
{
1
N/A
my
(
$warn
,
$bad
)
=
(
0
,
0
)
;
1
N/A
local
$SIG
{
__WARN__
} =
sub
{
1
N/A
if
($_[
0
] =~ /
uninitialized
/)
{
1
N/A
$warn
++
1
N/A
}
1
N/A
else
{
1
N/A
$bad
++
1
N/A
}
1
N/A
}
;
1
N/A
my
$result
=
sprintf
join
(
''
,
map
(
"%$_\$s%"
. ~$_ .
'$s'
,
1
..
20
)
)
,
1
N/A
qw
(a b c d)
;
1
N/A
is
(
$result
,
"abcd"
,
"only four valid values"
)
;
1
N/A
is
(
$warn
,
36
,
"expected warnings"
)
;
1
N/A
is
(
$bad
,
0
,
"unexpected warnings"
)
;
1
N/A
}
1
N/A
1
N/A
{
1
N/A
foreach
my
$ord
(
0
..
255
)
{
1
N/A
my
$bad
=
0
;
1
N/A
local
$SIG
{
__WARN__
} =
sub
{
1
N/A
unless
($_[
0
] =~ /^
Invalid
conversion
in
sprintf
/ ||
1
N/A
$_[
0
] =~ /^
Use
of
uninitialized
value
in
sprintf
/)
{
1
N/A
warn
$_[
0
];
1
N/A
$bad
++;
1
N/A
}
1
N/A
}
;
1
N/A
my
$r =
eval
{
sprintf
'%v'
.
chr
$ord
};
1
N/A
is
(
$bad
,
0
,
"pattern '%v' . chr
$ord
"
)
;
1
N/A
}
1
N/A
}