t/tools/pbc_dump.t: Overly sensitive to how its path is spelled

James E Keenan jkeen at verizon.net
Sun Oct 16 02:24:18 UTC 2011


In the course of working on a branch yesterday and today, I noticed this 
anomalous behavior in t/tools/pbc_dump.t.  Let's call it with 'prove':

#####
$ prove  t/tools/pbc_dump.t
t/tools/pbc_dump.t .. ok
All tests successful.
Files=1, Tests=25,  8 wallclock secs ( 0.13 usr  0.04 sys +  2.21 cusr 
4.51 csys =  6.89 CPU)
Result: PASS
#####

Everything's fine.  Now, let's call it in a way which, in principle, 
ought to deliver exactly the same results:  Let's prepend './' to the 
file's name:

#####
[parrot] 514 $ prove  ./t/tools/pbc_dump.t
./t/tools/pbc_dump.t .. 1/25
#   Failed test 'pbc_dump basic sanity'
#   at ./t/tools/pbc_dump.t line 236.
#                   'HEADER => [
#       wordsize  = 4   (interpreter's wordsize/INTVAL = 4/4)
#       byteorder = 1   (interpreter's byteorder       = 1)
#       floattype = 0   (interpreter's NUMVAL_SIZE     = 8)
#       parrot-version 3.8.0, bytecode-version 11.0
#       UUID: type = 0, size = 0
#       no endianize, no opcode, no numval transform
#       dirformat = 1
# ]
# DIRECTORY => [ # offs 0x30(48) = op_count 144, itype 0, id 0, size 0, ...
#       # 3 segments
#       type 3  BYTECODE_./t/tools/pbc_dump.t.1.pir      offs 0x3c(0xf0) 
       op_count 28
#       type 2  CONSTANT_./t/tools/pbc_dump.t.1.pir      offs 
0x58(0x160)      op_count 56
#       type 4  BYTECODE_./t/tools/pbc_dump.t.1.pir_DB   offs 
0x90(0x240)      op_count 12
# ]
# BYTECODE_./t/tools/pbc_dump.t.1.pir => [ # offs 0x3c(60) = op_count 
28, itype 0, id 0, size 6, ...
#  0000:  00000000 00000000 0000002a 00000001 00000000 00000002
# ]
# CONSTANT_./t/tools/pbc_dump.t.1.pir => [
#     # 0:
#     [ 'PFC_STRING', {
#               FLAGS    => 0x8100 (is_string,COW)
#         ENCODING => ascii,
#         SIZE     => 26,
#         DATA     => "./t/tools/pbc_dump.t.1.pir"
#     } ],
#     # 1:
#     [ 'PFC_STRING', {
#               FLAGS    => 0x9100 (is_string,external,COW)
#         ENCODING => ascii,
#         SIZE     => 4,
#         DATA     => "main"
#     } ],
#     # 2:
#     [ 'PFC_STRING', {
#               FLAGS    => 0x9100 (is_string,external,COW)
#         ENCODING => null,
#         SIZE     => 0,
#         DATA     => ""
#     } ],
#     # 3:
#     [ 'PFC_STRING', {
#               FLAGS    => 0x9100 (is_string,external,COW)
#         ENCODING => ascii,
#         SIZE     => 6,
#         DATA     => "parrot"
#     } ],
#     # 0:
#     [ 'PFC_PMC', {
#               FLAGS    => 0x80200 (is_PMC,custom_mark)
#               class => FixedIntegerArray,
#               repr => '[  ]'
#     } ],
#     # 1:
#     [ 'PFC_PMC', {
#               FLAGS    => 0xc0200 (is_PMC,on_free_list,custom_mark)
#               class       => Sub,
#               start_offs  => 0,
#               end_offs    => 6,
#               name        => 'main',
#               subid       => 'main',
#               method      => '',
#               nsentry     => 'main',
#               namespace   => Null,
#               HLL_id      => 0,
#               n_regs_used => [ 1, 0, 0, 0 ],
#     } ],
# ],
# BYTECODE_./t/tools/pbc_dump.t.1.pir_DB => [ # offs 0x90(144) = 
op_count 12, itype 0, id 0, size 4, ...
#   mappings => [
#     #0
#     [
#         OFFSET => 0,
#         FILENAME => ./t/tools/pbc_dump.t.1.pir
#     ],
#   ]
# '
#     doesn't match '(?^:CONSTANT_t)'

#   Failed test 'pbc_dump basic sanity'
#   at ./t/tools/pbc_dump.t line 236.

... ######## Skipping two similar test failures ########

./t/tools/pbc_dump.t .. 23/25 # Looks like you failed 3 tests of 25.
./t/tools/pbc_dump.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/25 subtests

Test Summary Report
-------------------
./t/tools/pbc_dump.t (Wstat: 768 Tests: 25 Failed: 3)
   Failed tests:  1-2, 5
   Non-zero exit status: 3
Files=1, Tests=25,  8 wallclock secs ( 0.14 usr  0.03 sys +  2.20 cusr 
4.51 csys =  6.88 CPU)
Result: FAIL
#####

I get the same results with:

   perl t/harness --gc-debug t/tools/pbc_dump.t

versus:
   perl t/harness --gc-debug .t/tools/pbc_dump.t

Can anyone explain why the test results are so sensitive to what should 
be an innocuous difference?

Thank you very much.
Jim Keenan



More information about the parrot-dev mailing list