$| = 1;
&customize(); # read test control instructions
- loadtest("$logdir/test$testno");
+ # force a reload, a test retry may have regenerated the file
+ loadtest("$logdir/test$testno", 0, 1);
my $welcome = $commandreply{"welcome"};
if(!$welcome) {
);
}
-use Memoize;
+use Memoize qw(memoize flush_cache);
my @xml; # test data file contents
my $xmlfile; # test data filename
# memoize('partexists', NORMALIZER => 'normalize_part'); # cache each result
sub loadtest {
- my ($file, $original) = @_;
+ my ($file, $original, $force) = @_;
- if(defined $xmlfile && $file eq $xmlfile) {
+ if(!$force && defined $xmlfile && $file eq $xmlfile) {
# This test is already loaded
return
}
undef @xml;
$xmlfile = "";
+ # flush results cached from an earlier load, the file may have been
+ # regenerated since with new variable substitutions
+ flush_cache('getpart');
+ flush_cache('getpartattr');
+
if(open(my $xmlh, "<", $file)) {
if($original) {
binmode $xmlh, ':crlf';
}
close($fulltesth) or die "Failure writing test file";
- # in case the process changed the file, reload it
- loadtest("$LOGDIR/test${testnum}");
+ # in case the process changed the file, force a reload
+ loadtest("$LOGDIR/test${testnum}", 0, 1);
}
#######################################################################