xref: /llvm-project/clang/test/ClangScanDeps/resolve-executable-path.c (revision a26ec542371652e1d774696e90016fd5b0b1c191)
1*a26ec542SMartin Storsjö // UNSUPPORTED: system-windows
2*a26ec542SMartin Storsjö 
3*a26ec542SMartin Storsjö // Check that we expand the executable name to an absolute path, when invoked
4*a26ec542SMartin Storsjö // with a plain executable name, which is implied to be found in PATH.
5*a26ec542SMartin Storsjö // REQUIRES: x86-registered-target
6*a26ec542SMartin Storsjö 
7*a26ec542SMartin Storsjö // RUN: rm -rf %t
8*a26ec542SMartin Storsjö // RUN: mkdir -p %t/bin
9*a26ec542SMartin Storsjö // RUN: ln -s %clang %t/bin/x86_64-w64-mingw32-clang
10*a26ec542SMartin Storsjö // RUN: split-file %s %t
11*a26ec542SMartin Storsjö // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json
12*a26ec542SMartin Storsjö 
13*a26ec542SMartin Storsjö // Check that we can deduce this both when using a compilation database, and when using
14*a26ec542SMartin Storsjö // a literal command line.
15*a26ec542SMartin Storsjö 
16*a26ec542SMartin Storsjö // RUN: env "PATH=%t/bin:%PATH%" clang-scan-deps -format experimental-full -compilation-database %t/cdb.json | FileCheck %s -DBASE=%/t
17*a26ec542SMartin Storsjö 
18*a26ec542SMartin Storsjö // RUN: env "PATH=%t/bin:%PATH%" clang-scan-deps -format experimental-full -- x86_64-w64-mingw32-clang %t/source.c -o %t/source.o | FileCheck %s -DBASE=%/t
19*a26ec542SMartin Storsjö 
20*a26ec542SMartin Storsjö // CHECK: "executable": "[[BASE]]/bin/x86_64-w64-mingw32-clang"
21*a26ec542SMartin Storsjö 
22*a26ec542SMartin Storsjö //--- cdb.json.in
23*a26ec542SMartin Storsjö [
24*a26ec542SMartin Storsjö   {
25*a26ec542SMartin Storsjö     "directory": "DIR"
26*a26ec542SMartin Storsjö     "command": "x86_64-w64-mingw32-clang -c DIR/source.c -o DIR/source.o"
27*a26ec542SMartin Storsjö     "file": "DIR/source.c"
28*a26ec542SMartin Storsjö   },
29*a26ec542SMartin Storsjö ]
30*a26ec542SMartin Storsjö 
31*a26ec542SMartin Storsjö //--- source.c
32*a26ec542SMartin Storsjö void func(void) {}
33