[comp.lang.perl] pl28 op.stat FAILED on test 35

gamin@ireq-robot.hydro.qc.ca (Martin Boyer) (09/11/90)

I get the following message from 'make test', using perl 3.0,
patchlevel 28 on a Sun3 running SunOS 4.0.3.  Compiled with cc -O2.

op.stat.........FAILED on test 35

The relevant part in op.stat is:

----------------

$cnt = $uid = 0;

die "Can't run op.stat test 35 without pwd working" unless $cwd;
chdir '/usr/bin' || die "Can't cd to /usr/bin";
while (<*>) {
    $cnt++;
    $uid++ if -u;
    last if $uid && $uid < $cnt;
}
chdir $cwd || die "Can't cd back to $cwd";

# I suppose this is going to fail somewhere...
if ($uid > 0 && $uid < $cnt) {print "ok 35\n";} else {print "not ok 35\n";}

----------------

What's wrong?
Should I worry about it?

--
Martin Boyer                            mboyer@ireq-robot.hydro.qc.ca
Institut de recherche d'Hydro-Quebec    mboyer@ireq-robot.uucp
Varennes, QC, Canada   J3X 1S1
+1 514 652-8136

lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) (09/11/90)

In article <2815@s3.ireq.hydro.qc.ca> gamin@ireq-robot.hydro.qc.ca (Martin Boyer) writes:
: 
: I get the following message from 'make test', using perl 3.0,
: patchlevel 28 on a Sun3 running SunOS 4.0.3.  Compiled with cc -O2.
: 
: op.stat.........FAILED on test 35
: 
: The relevant part in op.stat is:
: 
: ----------------
: 
: $cnt = $uid = 0;
: 
: die "Can't run op.stat test 35 without pwd working" unless $cwd;
: chdir '/usr/bin' || die "Can't cd to /usr/bin";
: while (<*>) {
:     $cnt++;
:     $uid++ if -u;
:     last if $uid && $uid < $cnt;
: }
: chdir $cwd || die "Can't cd back to $cwd";
: 
: # I suppose this is going to fail somewhere...
: if ($uid > 0 && $uid < $cnt) {print "ok 35\n";} else {print "not ok 35\n";}
: 
: ----------------
: 
: What's wrong?
: Should I worry about it?

It's trying to determine if the -u switch works, on the assumption that
some files in /usr/bin will be setuid.  Either you have no setuid files
in /usr/bin (doubtful), or the <*> glob failed for some reason.  The most
likely explanation is that you have a file called "0" in /usr/bin.  The
test should probably be

    while (defined($_ = <*>))

Larry

gamin@ireq-robot.hydro.qc.ca (Martin Boyer) (09/11/90)

In article <9445@jpl-devvax.JPL.NASA.GOV> lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) writes:
>In article <2815@s3.ireq.hydro.qc.ca> gamin@ireq-robot.hydro.qc.ca (Martin Boyer) writes:
>: 
>: I get the following message from 'make test', using perl 3.0,
>: patchlevel 28 on a Sun3 running SunOS 4.0.3.  Compiled with cc -O2.
>: 
>: op.stat.........FAILED on test 35
>: 
>: The relevant part in op.stat is:
>: 
>: [...]

>[...] The most likely explanation is that you have a file called "0"
>in /usr/bin.

Correct.

> The test should probably be
>
>    while (defined($_ = <*>))

I changed it in op.stat and, as expected, perl pl28 now passes all tests.

Thanks,

--
Martin Boyer                            mboyer@ireq-robot.hydro.qc.ca
Institut de recherche d'Hydro-Quebec    mboyer@ireq-robot.uucp
Varennes, QC, Canada   J3X 1S1
+1 514 652-8136