From: Sean Silva Date: Tue, 1 Mar 2016 01:20:15 +0000 (+0000) Subject: Make test more robust. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6066fde84c636b1bd6756fcf8abd9b1715733e49;p=clang Make test more robust. Really all these tests are checking is that we find a file path. The behavior when we don't find one will have `"ps4-ld"` in it. We just need a path separator to know that a path has been found. The root cause of the flakiness of these tests is the same on Windows and non-Windows: setting the PATH environment variable is not sufficient to guarantee that a particular path is looked up first. Driver::GetProgramPath checks some paths before deferring to PATH (in particular, the directory containing the clang binary itself). I initally ran into this on Windows when putting a PS4 linker in build-dir/bin/ps4-ld for testing. After digging for a while thinking that it was some windows path search oddity (the Windows SearchPathW documentation indicates that its behavior varies depending on a registry setting...). I eventually tried reproducing the issue on Mac and to my surprise found the same issue. Ultimately I traced it down to the extra lookups in Driver::GetProgramPath. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@262285 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Driver/ps4-linker-non-win.c b/test/Driver/ps4-linker-non-win.c index 1fce6d6077..98a634308b 100644 --- a/test/Driver/ps4-linker-non-win.c +++ b/test/Driver/ps4-linker-non-win.c @@ -18,4 +18,4 @@ // RUN: env "PATH=%T/Output:%PATH%" %clang -### -target x86_64-scei-ps4 %s -shared \ // RUN: -fuse-ld=ps4 2>&1 | FileCheck --check-prefix=CHECK-PS4-LINKER %s -// CHECK-PS4-LINKER: Output/ps4-ld +// CHECK-PS4-LINKER: /ps4-ld diff --git a/test/Driver/ps4-linker-win.c b/test/Driver/ps4-linker-win.c index 80387acec7..fe45786a36 100644 --- a/test/Driver/ps4-linker-win.c +++ b/test/Driver/ps4-linker-win.c @@ -22,6 +22,5 @@ // RUN: env "PATH=%T;%PATH%;" %clang -target x86_64-scei-ps4 %s -shared \ // RUN: -fuse-ld=ps4 -### 2>&1 | FileCheck --check-prefix=CHECK-PS4-LINKER %s -// FIXME: "Output\\" is hardcoded part of %T. -// CHECK-PS4-GOLD: Output\\ps4-ld.gold.exe" -// CHECK-PS4-LINKER: Output\\ps4-ld.exe" +// CHECK-PS4-GOLD: \\ps4-ld.gold +// CHECK-PS4-LINKER: \\ps4-ld