diff --git a/clang/test/Driver/clang-offload-bundler.c b/clang/test/Driver/clang-offload-bundler.c --- a/clang/test/Driver/clang-offload-bundler.c +++ b/clang/test/Driver/clang-offload-bundler.c @@ -70,9 +70,9 @@ // RUN: not clang-offload-bundler -type=i -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -outputs=%t.i,%t.tgt1 -inputs=%t.bundle.i -unbundle 2>&1 | FileCheck %s --check-prefix CK-ERR4 // CK-ERR4: error: number of output files and targets should match in unbundling mode -// RUN: not clang-offload-bundler -type=i -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -inputs=%t.i,%t.tgt1,%t.tgt2.notexist -outputs=%t.bundle.i 2>&1 | FileCheck %s -DFILE=%t.tgt2.notexist --check-prefix CK-ERR5 -// RUN: not clang-offload-bundler -type=i -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -outputs=%t.i,%t.tgt1,%t.tgt2 -inputs=%t.bundle.i.notexist -unbundle 2>&1 | FileCheck %s -DFILE=%t.bundle.i.notexist --check-prefix CK-ERR5 -// CK-ERR5: error: '[[FILE]]': {{N|n}}o such file or directory +// RUN: not clang-offload-bundler -type=i -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -inputs=%t.i,%t.tgt1,%t.tgt2.notexist -outputs=%t.bundle.i 2>&1 | FileCheck %s -DFILE=%t.tgt2.notexist -DMSG=%err_no_such_file_or_directory --check-prefix CK-ERR5 +// RUN: not clang-offload-bundler -type=i -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -outputs=%t.i,%t.tgt1,%t.tgt2 -inputs=%t.bundle.i.notexist -unbundle 2>&1 | FileCheck %s -DFILE=%t.bundle.i.notexist -DMSG=%err_no_such_file_or_directory --check-prefix CK-ERR5 +// CK-ERR5: error: '[[FILE]]': [[MSG]] // RUN: not clang-offload-bundler -type=invalid -targets=host-%itanium_abi_triple,openmp-powerpc64le-ibm-linux-gnu,openmp-x86_64-pc-linux-gnu -inputs=%t.i,%t.tgt1,%t.tgt2 -outputs=%t.bundle.i 2>&1 | FileCheck %s -DTYPE=invalid --check-prefix CK-ERR6 // CK-ERR6: error: '[[TYPE]]': invalid file type specified diff --git a/clang/test/Frontend/output-failures.c b/clang/test/Frontend/output-failures.c --- a/clang/test/Frontend/output-failures.c +++ b/clang/test/Frontend/output-failures.c @@ -1,4 +1,4 @@ // RUN: not %clang_cc1 -emit-llvm -o %t.doesnotexist/somename %s 2> %t -// RUN: FileCheck -check-prefix=OUTPUTFAIL -input-file=%t %s +// RUN: FileCheck -check-prefix=OUTPUTFAIL -DMSG=%err_no_such_file_or_directory -input-file=%t %s -// OUTPUTFAIL: error: unable to open output file '{{.*}}doesnotexist{{.}}somename': '{{[nN]}}o such file or directory' +// OUTPUTFAIL: error: unable to open output file '{{.*}}doesnotexist{{.}}somename': '[[MSG]]' diff --git a/clang/test/Frontend/stats-file.c b/clang/test/Frontend/stats-file.c --- a/clang/test/Frontend/stats-file.c +++ b/clang/test/Frontend/stats-file.c @@ -4,5 +4,5 @@ // ... here come some json values ... // CHECK: } -// RUN: %clang_cc1 -emit-llvm -o %t -stats-file=%t.doesnotexist/bla %s 2>&1 | FileCheck -check-prefix=OUTPUTFAIL %s -// OUTPUTFAIL: warning: unable to open statistics output file '{{.*}}doesnotexist{{.}}bla': '{{[Nn]}}o such file or directory' +// RUN: %clang_cc1 -emit-llvm -o %t -stats-file=%t.doesnotexist/bla %s 2>&1 | FileCheck -DMSG=%err_no_such_file_or_directory -check-prefix=OUTPUTFAIL %s +// OUTPUTFAIL: warning: unable to open statistics output file '{{.*}}doesnotexist{{.}}bla': '[[MSG]]' diff --git a/llvm/test/Object/archive-extract.test b/llvm/test/Object/archive-extract.test --- a/llvm/test/Object/archive-extract.test +++ b/llvm/test/Object/archive-extract.test @@ -57,5 +57,5 @@ RUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN EVENLEN: evenlen -RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o 2>&1 | FileCheck %s --check-prefix=MISSING -MISSING: error: {{N|n}}o such file or directory +RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o 2>&1 | FileCheck %s --DMSG=%err_no_such_file_or_directory --check-prefix=MISSING +MISSING: error: [[MSG]] diff --git a/llvm/test/tools/llvm-ar/move.test b/llvm/test/tools/llvm-ar/move.test --- a/llvm/test/tools/llvm-ar/move.test +++ b/llvm/test/tools/llvm-ar/move.test @@ -82,9 +82,9 @@ ## Member does not exist: # RUN: llvm-ar rc %t/missing.a %t/1.o %t/2.o %t/3.o # RUN: not llvm-ar m %t/missing.a %t/missing.txt 2>&1 \ -# RUN: | FileCheck %s --check-prefix=MISSING-FILE -DFILE=%t/missing.txt +# RUN: | FileCheck %s --check-prefix=MISSING-FILE -DFILE=%t/missing.txt -DMSG=%err_no_such_file_or_directory -# MISSING-FILE: error: [[FILE]]: {{[nN]}}o such file or directory +# MISSING-FILE: error: [[FILE]]: [[MSG]] --- !ELF FileHeader: diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py --- a/llvm/utils/lit/lit/llvm/config.py +++ b/llvm/utils/lit/lit/llvm/config.py @@ -345,6 +345,14 @@ self.config.substitutions.extend(substitutions) return True + def add_err_msg_substitutions(self, triple): + if (re.match(r's390x-.*-zos', triple)): + self.config.substitutions.append(('%err_no_such_file_or_directory', '\'EDC5129I No such file or directory.\'')) + elif (re.match(r'.*windows.*', triple)): + self.config.substitutions.append(('%err_no_such_file_or_directory', '\'no such file or directory\'')) + else: + self.config.substitutions.append(('%err_no_such_file_or_directory', '\'No such file or directory\'')) + def use_default_substitutions(self): tool_patterns = [ ToolSubst('FileCheck', unresolved='fatal'), @@ -358,6 +366,10 @@ self.add_tool_substitutions( tool_patterns, [self.config.llvm_tools_dir]) + if hasattr(self.config, 'host_triple'): + self.add_err_msg_substitutions(self.config.host_triple) + + def use_llvm_tool(self, name, search_env=None, required=False, quiet=False): """Find the executable program 'name', optionally using the specified environment variable as an override before searching the