[llvm] [llvm-lit] Precommit Tests for implementing the `unset` command in lit internal shell (PR #104618)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 16 10:10:51 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-testing-tools
Author: None (Harini0924)
<details>
<summary>Changes</summary>
This patch introduces a suite of tests designed to verify the current behavior of the `unset` command within the lit internal shell. As it stands, the unset command is not recognized or supported in this environment, resulting in expected failures with specific error messages and exit codes. These tests are intentionally failing to reflect the current state and to serve as a baseline for future enhancements.
In my following PR, I will implement support for the `unset` command within the lit internal shell, ensuring that these tests will pass.
This change is relevant for [[RFC] Enabling the Lit Internal Shell by Default](https://discourse.llvm.org/t/rfc-enabling-the-lit-internal-shell-by-default/80179/3)
---
Full diff: https://github.com/llvm/llvm-project/pull/104618.diff
6 Files Affected:
- (added) llvm/utils/lit/tests/Inputs/shtest-unset/lit.cfg (+10)
- (added) llvm/utils/lit/tests/Inputs/shtest-unset/unset-multiple-variables.txt (+3)
- (added) llvm/utils/lit/tests/Inputs/shtest-unset/unset-no-args.txt (+3)
- (added) llvm/utils/lit/tests/Inputs/shtest-unset/unset-nonexistent-variable.txt (+3)
- (added) llvm/utils/lit/tests/Inputs/shtest-unset/unset-variable.txt (+3)
- (added) llvm/utils/lit/tests/shtest-unset.py (+42)
``````````diff
diff --git a/llvm/utils/lit/tests/Inputs/shtest-unset/lit.cfg b/llvm/utils/lit/tests/Inputs/shtest-unset/lit.cfg
new file mode 100644
index 00000000000000..ec8c43263be721
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-unset/lit.cfg
@@ -0,0 +1,10 @@
+import lit.formats
+
+config.name = "shtest-unset"
+config.suffixes = [".txt"]
+config.test_format = lit.formats.ShTest()
+config.test_source_root = None
+config.test_exec_root = None
+config.environment["FOO"] = "1"
+config.environment["BAR"] = "2"
+config.substitutions.append(("%{python}", '"%s"' % (sys.executable)))
diff --git a/llvm/utils/lit/tests/Inputs/shtest-unset/unset-multiple-variables.txt b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-multiple-variables.txt
new file mode 100644
index 00000000000000..f7dc7e80bd93b4
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-multiple-variables.txt
@@ -0,0 +1,3 @@
+## Tests the 'unset' command with multiple variables.
+
+# RUN: unset FOO BAR
diff --git a/llvm/utils/lit/tests/Inputs/shtest-unset/unset-no-args.txt b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-no-args.txt
new file mode 100644
index 00000000000000..bc9f27710c5bfb
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-no-args.txt
@@ -0,0 +1,3 @@
+## Tests the 'unset' command when no arguments are provided.
+
+# RUN: unset
diff --git a/llvm/utils/lit/tests/Inputs/shtest-unset/unset-nonexistent-variable.txt b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-nonexistent-variable.txt
new file mode 100644
index 00000000000000..5fbe3fb757291b
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-nonexistent-variable.txt
@@ -0,0 +1,3 @@
+## Test the behavior of the 'unset' command when trying to unset a variable that does not exist.
+
+# RUN: unset NONEXISTENT
diff --git a/llvm/utils/lit/tests/Inputs/shtest-unset/unset-variable.txt b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-variable.txt
new file mode 100644
index 00000000000000..11adcd234e7177
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-unset/unset-variable.txt
@@ -0,0 +1,3 @@
+## Tests the 'unset' command with a single variable
+
+# RUN: unset FOO
diff --git a/llvm/utils/lit/tests/shtest-unset.py b/llvm/utils/lit/tests/shtest-unset.py
new file mode 100644
index 00000000000000..fdcc2ed5d86fce
--- /dev/null
+++ b/llvm/utils/lit/tests/shtest-unset.py
@@ -0,0 +1,42 @@
+## Check that the 'unset' command fails as expected for various tests.
+
+# RUN: not %{lit} -a -v %{inputs}/shtest-unset \
+# RUN: | FileCheck -match-full-lines %s
+#
+# END.
+
+## Check that the 'unset' command's expected failures.
+
+# CHECK: -- Testing: 4 tests{{.*}}
+
+# CHECK: FAIL: shtest-unset :: unset-multiple-variables.txt{{.*}}
+# CHECK: unset FOO BAR
+# CHECK-NEXT: # executed command: unset FOO BAR
+# CHECK-NEXT: # .---command stderr------------
+# CHECK-NEXT: # | 'unset': command not found
+# CHECK: # error: command failed with exit status: 127
+
+# CHECK: FAIL: shtest-unset :: unset-no-args.txt{{.*}}
+# CHECK: unset
+# CHECK-NEXT: # executed command: unset
+# CHECK-NEXT: # .---command stderr------------
+# CHECK-NEXT: # | 'unset': command not found
+# CHECK: # error: command failed with exit status: 127
+
+# CHECK: FAIL: shtest-unset :: unset-nonexistent-variable.txt{{.*}}
+# CHECK: unset NONEXISTENT
+# CHECK-NEXT: # executed command: unset NONEXISTENT
+# CHECK-NEXT: # .---command stderr------------
+# CHECK-NEXT: # | 'unset': command not found
+# CHECK: # error: command failed with exit status: 127
+
+# CHECK: FAIL: shtest-unset :: unset-variable.txt{{.*}}
+# CHECK: unset FOO
+# CHECK-NEXT: # executed command: unset FOO
+# CHECK-NEXT: # .---command stderr------------
+# CHECK-NEXT: # | 'unset': command not found
+# CHECK: # error: command failed with exit status: 127
+
+# CHECK: Total Discovered Tests: 4
+# CHECK: Failed: 4 {{\([0-9]*\.[0-9]*%\)}}
+# CHECK-NOT: {{.}}
``````````
</details>
https://github.com/llvm/llvm-project/pull/104618
More information about the llvm-commits
mailing list