[llvm] [lit] Split Linux specific ulimit tests (PR #158390)

via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 12 18:02:55 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-testing-tools

Author: Aiden Grossman (boomanaiden154)

<details>
<summary>Changes</summary>

Some of the ulimit limits do not work on some POSIX platforms. THe motivating example here is ulimit -v on MacOS as the relevant system calls are not implemented in XNU. Splitting the tests lets us keep test coverage on POSIX (non-Linux) platforms.

---
Full diff: https://github.com/llvm/llvm-project/pull/158390.diff


4 Files Affected:

- (added) llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg (+8) 
- (added) llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt (+4) 
- (modified) llvm/utils/lit/tests/Inputs/shtest-ulimit/ulimit_okay.txt (-1) 
- (modified) llvm/utils/lit/tests/shtest-ulimit.py (+7-8) 


``````````diff
diff --git a/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg b/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg
new file mode 100644
index 0000000000000..c7bdc7e7b6bc0
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg
@@ -0,0 +1,8 @@
+import lit.formats
+
+config.name = "shtest-ulimit"
+config.suffixes = [".txt"]
+config.test_format = lit.formats.ShTest(execute_external=False)
+config.test_source_root = None
+config.test_exec_root = None
+config.substitutions.append(("%{python}", '"%s"' % (sys.executable)))
diff --git a/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt b/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt
new file mode 100644
index 0000000000000..dbdd0037e70a7
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt
@@ -0,0 +1,4 @@
+# RUN: ulimit -v 1048576
+# RUN: %{python} %S/../shtest-ulimit/print_limits.py
+# Fail the test so that we can assert on the output.
+# RUN: not echo return
diff --git a/llvm/utils/lit/tests/Inputs/shtest-ulimit/ulimit_okay.txt b/llvm/utils/lit/tests/Inputs/shtest-ulimit/ulimit_okay.txt
index ad353b5d7c459..4edf1c303a092 100644
--- a/llvm/utils/lit/tests/Inputs/shtest-ulimit/ulimit_okay.txt
+++ b/llvm/utils/lit/tests/Inputs/shtest-ulimit/ulimit_okay.txt
@@ -1,4 +1,3 @@
-# RUN: ulimit -v 1048576
 # RUN: ulimit -n 50
 # RUN: %{python} %S/print_limits.py
 # Fail the test so that we can assert on the output.
diff --git a/llvm/utils/lit/tests/shtest-ulimit.py b/llvm/utils/lit/tests/shtest-ulimit.py
index b86578a21f661..444937f21eb02 100644
--- a/llvm/utils/lit/tests/shtest-ulimit.py
+++ b/llvm/utils/lit/tests/shtest-ulimit.py
@@ -3,13 +3,8 @@
 # ulimit does not work on non-POSIX platforms.
 # UNSUPPORTED: system-windows
 
-# TODO(boomanaiden154): The test fails on some non-Linux POSIX
-# platforms (like MacOS) due to the underlying system not supporting
-# ulimit -v. This test needs to be carved up so we keep full test
-# coverage on Linux and as much as possible on other platforms.
-# REQUIRES: system-linux
-
 # RUN: not %{lit} -a -v %{inputs}/shtest-ulimit | FileCheck %s
+# RUN: %if system-linux %{ not %{lit} -a -v %{inputs}/shtest-ulimit-linux | FileCheck %s --check-prefix CHECK-LINUX %}
 
 # CHECK: -- Testing: 2 tests{{.*}}
 
@@ -18,7 +13,11 @@
 # CHECK: 'ulimit' requires two arguments
 
 # CHECK-LABEL: FAIL: shtest-ulimit :: ulimit_okay.txt ({{[^)]*}})
-# CHECK: ulimit -v 1048576
 # CHECK: ulimit -n 50
-# CHECK: RLIMIT_AS=1073741824
 # CHECK: RLIMIT_NOFILE=50
+
+# CHECK-LINUX: -- Testing: 1 tests{{.*}}
+
+# CHECK-LINUX-LABEL: FAIL: shtest-ulimit :: ulimit_okay.txt ({{[^)]*}})
+# CHECK-LINUX: ulimit -v 1048576
+# CHECK-LINUX: RLIMIT_AS=1073741824

``````````

</details>


https://github.com/llvm/llvm-project/pull/158390


More information about the llvm-commits mailing list