[compiler-rt] [llvm] [compiler-rt][test] Resolved export command failure in test run with lit's internal shell (PR #105961)
Connie Zhu via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 24 15:15:37 PDT 2024
https://github.com/connieyzhu created https://github.com/llvm/llvm-project/pull/105961
This patch fixes the incorrect usage of lit's built-in `export` command.
First, a typo in raising the error itself is resolved. The error being raised had the wrong number of parameters passed in.
Then, the `export` command was given the wrong number of arguments, as `%env_asan_opts` expands to `env ASAN_OPTIONS`, giving `export` two arguments instead of the expected one argument. To avoid this, the use of `export` is completely removed, and the setting of the environment variable `ASAN_OPTIONS` is added before all RUN lines following the initial export RUN line. This is essentially the same as using `export`, which propagates the environment variable value to all subsequent commands.
Fixes https://github.com/llvm/llvm-project/issues/102386.
>From f180c0ec5717f8d48d905574453396466d1c6d22 Mon Sep 17 00:00:00 2001
From: Connie Zhu <connieyzhu at google.com>
Date: Sat, 24 Aug 2024 21:53:26 +0000
Subject: [PATCH 1/2] [llvm-lit] Fixed typo in raising InternalShellError in
built-in export command
This patch fixes a typo in lit's built-in export command, which returns
an InternalShellError when more than one argument is given to the
export. The InternalShellError was missing the cmd parameter when
raised, leading to issues when a test using export fails in
high-address-dereference.c in compiler-rt.
---
llvm/utils/lit/lit/TestRunner.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index da7fa86fd39173..63ab5e4c183494 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -356,7 +356,7 @@ def executeBuiltinPopd(cmd, shenv):
def executeBuiltinExport(cmd, shenv):
"""executeBuiltinExport - Set an environment variable."""
if len(cmd.args) != 2:
- raise InternalShellError("'export' supports only one argument")
+ raise InternalShellError(cmd, "'export' supports only one argument")
updateEnv(shenv, cmd.args)
return ShellCommandResult(cmd, "", "", 0, False)
>From 5889fc5fd0b07c92aa5b4becbfe4cfdd37e9e2ad Mon Sep 17 00:00:00 2001
From: Connie Zhu <connieyzhu at google.com>
Date: Sat, 24 Aug 2024 22:00:26 +0000
Subject: [PATCH 2/2] [compiler-rt][test] Rewrote test to fix usage of export
with 2 arguments
This patch fixes the incorrect usage of lit's built-in export command in
this compiler-rt test. The export command only allows for one argument,
but %env_asan_opts expands to "env ASAN_OPTIONS", which gives export two
arguments instead of only one. Instead of using export, which propogates
the environment variable value to all subsequent commands, the
environment variable is manually set before all RUN lines following the
original export line.
---
.../asan/TestCases/Posix/high-address-dereference.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/compiler-rt/test/asan/TestCases/Posix/high-address-dereference.c b/compiler-rt/test/asan/TestCases/Posix/high-address-dereference.c
index 845e126d3f89b9..37a7b1702e982e 100644
--- a/compiler-rt/test/asan/TestCases/Posix/high-address-dereference.c
+++ b/compiler-rt/test/asan/TestCases/Posix/high-address-dereference.c
@@ -5,12 +5,11 @@
// REQUIRES: x86_64-target-arch
// RUN: %clang_asan %s -o %t
-// RUN: export %env_asan_opts=print_scariness=1
-// RUN: not %run %t 0x0000000000000000 2>&1 | FileCheck %s --check-prefixes=ZERO,HINT-PAGE0
-// RUN: not %run %t 0x0000000000000FFF 2>&1 | FileCheck %s --check-prefixes=LOW1,HINT-PAGE0
-// RUN: not %run %t 0x0000000000001000 2>&1 | FileCheck %s --check-prefixes=LOW2,HINT-NONE
-// RUN: not %run %t 0x4141414141414141 2>&1 | FileCheck %s --check-prefixes=HIGH,HINT-HIGHADDR
-// RUN: not %run %t 0xFFFFFFFFFFFFFFFF 2>&1 | FileCheck %s --check-prefixes=MAX,HINT-HIGHADDR
+// RUN: %env_asan_opts=print_scariness=1 not %run %t 0x0000000000000000 2>&1 | FileCheck %s --check-prefixes=ZERO,HINT-PAGE0
+// RUN: %env_asan_opts=print_scariness=1 not %run %t 0x0000000000000FFF 2>&1 | FileCheck %s --check-prefixes=LOW1,HINT-PAGE0
+// RUN: %env_asan_opts=print_scariness=1 not %run %t 0x0000000000001000 2>&1 | FileCheck %s --check-prefixes=LOW2,HINT-NONE
+// RUN: %env_asan_opts=print_scariness=1 not %run %t 0x4141414141414141 2>&1 | FileCheck %s --check-prefixes=HIGH,HINT-HIGHADDR
+// RUN: %env_asan_opts=print_scariness=1 not %run %t 0xFFFFFFFFFFFFFFFF 2>&1 | FileCheck %s --check-prefixes=MAX,HINT-HIGHADDR
#include <stdint.h>
#include <stdlib.h>
More information about the llvm-commits
mailing list