From d385dba9ea5effae395c3e02cd068ab077041dd2 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Tue, 2 Dec 2014 00:53:20 +0000 Subject: [PATCH] Add a test that ensures the Clang driver behaves itself when the PATH environment variable is changed to strange things out from under it. Prior to r223099 in LLVM, these test cases would crash in various ways (assert fails, stack exhaustion, etc.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223100 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Driver/env.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/Driver/env.c diff --git a/test/Driver/env.c b/test/Driver/env.c new file mode 100644 index 0000000000..1d28fc0091 --- /dev/null +++ b/test/Driver/env.c @@ -0,0 +1,25 @@ +// These tests try to ensure that the driver operates reasonably when run with +// a strange environment. Unfortunately, it requires a normal shell and the +// 'env' command. +// +// REQUIRES: shell +// +// The PATH variable is heavily used when trying to find a linker. +// RUN: env -u PATH -- %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=i386-unknown-linux \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-32 %s +// +// RUN: env PATH="" %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=i386-unknown-linux \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-LD-32 %s +// +// CHECK-LD-32-NOT: warning: +// CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" +// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" +// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" +// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." +// CHECK-LD-32: "-L[[SYSROOT]]/lib" +// CHECK-LD-32: "-L[[SYSROOT]]/usr/lib" -- 2.50.1