Skip to content

Commit 089e796

Browse files
committed
Improve path handling for needles and OPENQA_BASEDIR
Calling some tests with ./ in front would make the tests fail because OPENQA_BASEDIR was set to ./t/data/... make test TESTS=./t/14-grutasks.t HEAVY=1 make test TESTS=./t/21-needles.t Issues: * https://progress.opensuse.org/issues/178177 * https://progress.opensuse.org/issues/178180
1 parent 53506df commit 089e796

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/OpenQA/Needles.pm

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ my $tmp_dir = prjdir() . '/webui/cache/needle-refs';
1919

2020
sub temp_dir () { $tmp_dir }
2121

22-
sub is_in_temp_dir ($file_path) { index($file_path, $tmp_dir) == 0 }
22+
sub is_in_temp_dir ($file_path) {
23+
my $abs_tmpdir = File::Spec->rel2abs($tmp_dir);
24+
$file_path = File::Spec->rel2abs($file_path);
25+
index($file_path, $abs_tmpdir) == 0;
26+
}
2327

2428
sub needle_temp_dir ($dir, $ref) { path($tmp_dir, basename(dirname($dir)), $ref, 'needles') }
2529

lib/OpenQA/Utils.pm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,10 @@ our @EXPORT_OK = qw(
161161
# override OPENQA_BASEDIR for tests
162162
if ($0 =~ /\.t$/) {
163163
# This should result in the 't' directory, even if $0 is in a subdirectory
164-
my ($tdirname) = $0 =~ qr/((.*\/t\/|^t\/)).+$/;
165-
$ENV{OPENQA_BASEDIR} ||= $tdirname . 'data';
164+
my ($tdirname) = $0 =~ m{((.*/t/|^t/)).+$};
165+
# remove ./
166+
$tdirname = File::Spec->canonpath($tdirname);
167+
$ENV{OPENQA_BASEDIR} ||= "$tdirname/data";
166168
}
167169

168170
sub prjdir { ($ENV{OPENQA_BASEDIR} || '/var/lib') . '/openqa' }

0 commit comments

Comments
 (0)