Ticket #1243 (new bug)

Opened 5 years ago

Last modified 4 years ago

Parrot::Test with --run-exec assumes "." is in $PATH

Reported by: jkeenan Owned by:
Priority: normal Milestone:
Component: testing Version: 1.7.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

This ticket moves into the Trac system discussion of an issue previously found in the RT system as  RT #49258. In that ticket, Bob Rogers provided test file pbc.t which is here attached.

Running that test file in the original RT, Bob posted this output:

The attached test case will illustrate the problem (but be sure to
check that $PATH does not contain "." first):

rogers@rgrjr> perl pbc.t
1..1
not ok 1 - .const of null string
# Failed test (pbc.t at line 18)
# got: ''
# expected: 'ok
# '
# Looks like you failed 1 test of 1.
rogers@rgrjr> PATH=".:$PATH" perl pbc.t
1..1
ok 1 - .const of null string
rogers@rgrjr>

I think the right thing would be to mangle $exe_f to start with 
"./", but I don't know how to do that portably.

Re-running it today, I got a failure -- but different output:

prove -v pbc.t
pbc.t .. 
1..1
not ok 1 - .const of null string

#   Failed test '.const of null string'
#   at pbc.t line 18.
#          got: 'error:imcc:syntax error, unexpected DOT, 
           expecting INTV or FLOATV or STRINGV or PMCV ('.')
#       in file '/topdir/work/parrot/pbc_1.pir' line 3
# error:imcc:syntax error, unexpected IDENTIFIER, 
           expecting '(' ('empty')
#       in file '/topdir/work/parrot/pbc_1.pir' line 4
# error:imcc:syntax error, unexpected STRINGC, 
           expecting '(' ('"ok\n"')
#       in file '/topdir/work/parrot/pbc_1.pir' line 5
# '
#     expected: 'ok
# '
# Looks like you failed 1 test of 1.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 

Test Summary Report
-------------------
pbc.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  0 wallclock secs 
  ( 0.02 usr  0.01 sys +  0.05 cusr  0.00 csys =  0.08 CPU)
Result: FAIL

gdb had this to say:

(gdb) run pbc_1.pir
Starting program: /topdir/work/parrot/parrot pbc_1.pir
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.36 is .hash at 000000b4
error:imcc:syntax error, unexpected DOT, expecting INTV or 
        FLOATV or STRINGV or PMCV ('.')
        in file 'pbc_1.pir' line 3
error:imcc:syntax error, unexpected IDENTIFIER, expecting '(' ('empty')
        in file 'pbc_1.pir' line 4
error:imcc:syntax error, unexpected STRINGC, expecting '(' ('"ok\n"')
        in file 'pbc_1.pir' line 5

Program exited with code 01.
(gdb) bt
No stack.

Attachments

pbc.t Download (0.6 KB) - added by jkeenan 5 years ago.
Bob Rogers' test file

Change History

Changed 5 years ago by jkeenan

Bob Rogers' test file

Changed 4 years ago by jkeenan

I continue to get the results I posted 16 months ago -- and I get those results regardless of whether I have . in my PATH or not.

Also, does Parrot still have anything called the run-exec core?

The only places in our source code where I see either run-exec or run_exec is in our testing apparatus:

$ ack -l --match 'run(-|_)exec' *
lib/Parrot/Harness/Options.pm
lib/Parrot/Test.pm
t/harness
t/harness.pir
t/pharness/02-get_test_prog_args.t

kid51

Note: See TracTickets for help on using tickets.