diff --git a/test_regress/driver.pl b/test_regress/driver.pl index 5008b753a..b9b220158 100755 --- a/test_regress/driver.pl +++ b/test_regress/driver.pl @@ -374,10 +374,12 @@ sub one_test { $test->oprint("FAILED: $test->{errors}\n"); my $j = ($opt_jobs>1?" -j":""); my $makecmd = $ENV{VERILATOR_MAKE} || "make$j &&"; + my $upperdir = (Cwd::getcwd() =~ /test_regress/ + ? 'test_regress/' : ''); push @{$self->{fail_msgs}}, ("\t#".$test->soprint("%Error: $test->{errors}\n") - ."\t\t$makecmd test_regress/" - .$test->{pl_filename} + ."\t\t$makecmd " + .$upperdir.$test->{pl_filename} ." ".join(' ', _manual_args()) ." --".$test->{scenario}."\n"); push @{$self->{fail_tests}}, $test; @@ -1298,6 +1300,14 @@ sub execute { } } +sub setenv { + my $self = (ref $_[0]? shift : $Self); + my $var = shift; + my $val = shift; + print "\texport $var='$val'\n"; + $ENV{$var} = $val; +} + sub inline_checks { my $self = (ref $_[0]? shift : $Self); return 1 if $self->errors || $self->skips || $self->unsupporteds; diff --git a/test_regress/t/t_case_huge_prof.pl b/test_regress/t/t_case_huge_prof.pl index 55977a0c5..2514ab53e 100755 --- a/test_regress/t/t_case_huge_prof.pl +++ b/test_regress/t/t_case_huge_prof.pl @@ -20,7 +20,7 @@ file_grep($Self->{stats}, qr/Optimizations, Tables created\s+(\d+)/i, 10); file_grep($Self->{stats}, qr/Optimizations, Combined CFuncs\s+(\d+)/i, 10); unlink $_ foreach (glob "$Self->{obj_dir}/gmon.out.*"); -$ENV{GMON_OUT_PREFIX} = "$Self->{obj_dir}/gmon.out"; +setenv('GMON_OUT_PREFIX', "$Self->{obj_dir}/gmon.out"); execute( check_finished => 1, diff --git a/test_regress/t/t_flag_getenv.pl b/test_regress/t/t_flag_getenv.pl index 0ca7ba7eb..638a6ed5f 100755 --- a/test_regress/t/t_flag_getenv.pl +++ b/test_regress/t/t_flag_getenv.pl @@ -10,7 +10,7 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di scenarios(vlt => 1); -$ENV{FOOBARTEST} = "gotit"; +setenv('FOOBARTEST', "gotit"); run( cmd => ["../bin/verilator --getenv FOOBARTEST"], diff --git a/test_regress/t/t_flag_skipidentical.pl b/test_regress/t/t_flag_skipidentical.pl index dafa4fdee..f3be1255c 100755 --- a/test_regress/t/t_flag_skipidentical.pl +++ b/test_regress/t/t_flag_skipidentical.pl @@ -22,7 +22,7 @@ scenarios(vlt => 1); sleep(2); # Or else it might take < 1 second to compile and see no diff. - $ENV{VERILATOR_DEBUG_SKIP_IDENTICAL} = 1; + setenv('VERILATOR_DEBUG_SKIP_IDENTICAL', 1); compile(); my @newstats = stat($outfile); diff --git a/test_regress/t/t_vlcov_merge.pl b/test_regress/t/t_vlcov_merge.pl index 181c9ecbd..a6a6cc3fa 100755 --- a/test_regress/t/t_vlcov_merge.pl +++ b/test_regress/t/t_vlcov_merge.pl @@ -24,7 +24,7 @@ run(cmd => ["../bin/verilator_coverage", # really care about ordering. So avoid false failures by sorting. # Set LC_ALL as suggested in the sort manpage to avoid sort order # changes from the locale. -$ENV{LC_ALL} = "C"; +setenv('LC_ALL', "C"); run(cmd => ["sort", "$Self->{obj_dir}/coverage.dat", "> $Self->{obj_dir}/coverage-sort.dat",