From: Peter Prymmer Date: Fri, 13 Jul 2001 19:15:45 +0000 (-0700) Subject: possible fix for sprintf.t on VAX that loads %Config X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8234e14b4b938e119256e3fdee072e5c6fc7ff39;p=p5sagit%2Fp5-mst-13.2.git possible fix for sprintf.t on VAX that loads %Config Message-ID: p4raw-id: //depot/perl@11368 --- diff --git a/t/op/sprintf.t b/t/op/sprintf.t index f534812..3ac559d 100755 --- a/t/op/sprintf.t +++ b/t/op/sprintf.t @@ -11,6 +11,12 @@ BEGIN { @INC = '../lib'; } use warnings; +# %Config is needed to obtain archname for VAX (since @INC is now insufficient) +use Config; + +# strictness +my @tests = (); +my ($i, $template, $data, $result, $comment, $w, $x, $evalData, $n, $p); while () { s/^\s*>//; s/<\s*$//; @@ -29,6 +35,13 @@ $SIG{__WARN__} = sub { } }; +my $Is_VMS_VAX = 0; +# The redundant $^O check might help non VMS platforms avoid %Config load +if ($^O eq 'VMS' && + defined($Config{'archname'}) && $Config{'archname'} eq 'VMS_VAX') { + $Is_VMS_VAX = 1; +} + for ($i = 1; @tests; $i++) { ($template, $data, $result, $comment) = @{shift @tests}; if ($^O eq 'os390' || $^O eq 's390') { # non-IEEE (s390 is UTS) @@ -37,6 +50,14 @@ for ($i = 1; @tests; $i++) { $data =~ s/([eE])\-101$/${1}-56/; # larger exponents $result =~ s/([eE])\-102$/${1}-57/; # " " } + if ($Is_VMS_VAX) { # VAX DEC C 5.3 at least since there is no + # ccflags =~ /float=ieee/ on VAX. + # AXP is unaffected whether or not it's using ieee. + $data =~ s/([eE])96$/${1}26/; # smaller exponents + $result =~ s/([eE]\+)102$/${1}32/; # " " + $data =~ s/([eE])\-101$/${1}-24/; # larger exponents + $result =~ s/([eE])\-102$/${1}-25/; # " " + } $evalData = eval $data; $w = undef; $x = sprintf(">$template<", @@ -135,13 +156,13 @@ __END__ >%L< >''< >%L INVALID< >%M< >''< >%M INVALID< >%N< >''< >%N INVALID< ->%O< >2**32-1< >37777777777< >Synonum for %lo< +>%O< >2**32-1< >37777777777< >Synonym for %lo< >%P< >''< >%P INVALID< >%Q< >''< >%Q INVALID< >%R< >''< >%R INVALID< >%S< >''< >%S INVALID< >%T< >''< >%T INVALID< ->%U< >2**32-1< >4294967295< >Synonum for %lu< +>%U< >2**32-1< >4294967295< >Synonym for %lu< >%V< >''< >%V INVALID< >%W< >''< >%W INVALID< >%X< >2**32-1< >FFFFFFFF< >Like %x, but with u/c letters< @@ -287,6 +308,9 @@ __END__ >%o< >2**32-1< >37777777777< >%+o< >2**32-1< >37777777777< >%#o< >2**32-1< >037777777777< +>%o< >642< >1202< >check smaller octals across platforms< +>%+o< >642< >1202< +>%#o< >642< >01202< >%d< >$p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/< >1< >Coarse hack: hex from %p?< >%#p< >''< >%#p INVALID< >%q< >''< >%q INVALID<