This bug was exposed in commit
fc58d8e82444d9f949f2ac5cbbed928ad6b12c30,
but only affected testsuite runs when coverage data is collected.
The exact cause is unknown, but that commit changed the processing used
for verifying signatures and the bug caused the testsuite to prematurely
declare the gatekeeper run complete and move on to the next test when a
signature was verified. Presumably, the improved signature verification
somehow interacted poorly with Expect.
Bizarrely, the issue only occurred when Devel::Cover was used to check
the coverage of the testsuite and did not occur under regular testing.
The root cause is surely timing related, since perl is much slower when
collecting code coverage data. This is also the reason the bug went
unnoticed for so long: coverage runs are infrequent except when making
improvements to the testsuite.
lappend runcmd $GATEKEEPER_TOOL --testing-this-script
eval $runcmd
# copy any output produced to the log
- expect { -re {.+} { exp_continue } eof { wait } }
+ expect { -re {.+} { exp_continue } eof }
+ wait -i $spawn_id
}
proc analyze_file_tree { base_dir name zones mode {itemlist {}} } {