[llvm] [lit] Split Linux specific ulimit tests (PR #158390)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 13 14:33:47 PDT 2025
https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/158390
>From 93fd2e4e9ea45b82051b2bbfe0f130faa15e343d Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sat, 13 Sep 2025 00:55:55 +0000
Subject: [PATCH 1/2] [lit] Split Linux specific ulimit tests
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.
---
.../lit/tests/Inputs/shtest-ulimit-linux/lit.cfg | 8 ++++++++
.../Inputs/shtest-ulimit-linux/ulimit_okay.txt | 4 ++++
.../tests/Inputs/shtest-ulimit/ulimit_okay.txt | 1 -
llvm/utils/lit/tests/shtest-ulimit.py | 15 +++++++--------
4 files changed, 19 insertions(+), 9 deletions(-)
create mode 100644 llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg
create mode 100644 llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt
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
>From bb6ae6399be0776e5682eac6bf7fc14aca575a40 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sat, 13 Sep 2025 21:33:36 +0000
Subject: [PATCH 2/2] feedback
---
.../lit.cfg | 0
.../ulimit_okay.txt | 0
llvm/utils/lit/tests/shtest-ulimit-nondarwin.py | 13 +++++++++++++
llvm/utils/lit/tests/shtest-ulimit.py | 7 -------
4 files changed, 13 insertions(+), 7 deletions(-)
rename llvm/utils/lit/tests/Inputs/{shtest-ulimit-linux => shtest-ulimit-nondarwin}/lit.cfg (100%)
rename llvm/utils/lit/tests/Inputs/{shtest-ulimit-linux => shtest-ulimit-nondarwin}/ulimit_okay.txt (100%)
create mode 100644 llvm/utils/lit/tests/shtest-ulimit-nondarwin.py
diff --git a/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg b/llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/lit.cfg
similarity index 100%
rename from llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/lit.cfg
rename to llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/lit.cfg
diff --git a/llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt b/llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/ulimit_okay.txt
similarity index 100%
rename from llvm/utils/lit/tests/Inputs/shtest-ulimit-linux/ulimit_okay.txt
rename to llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/ulimit_okay.txt
diff --git a/llvm/utils/lit/tests/shtest-ulimit-nondarwin.py b/llvm/utils/lit/tests/shtest-ulimit-nondarwin.py
new file mode 100644
index 0000000000000..2661a2c8d6448
--- /dev/null
+++ b/llvm/utils/lit/tests/shtest-ulimit-nondarwin.py
@@ -0,0 +1,13 @@
+# Check the ulimit command
+
+# ulimit does not work on non-POSIX platforms.
+# These tests are specific to options that Darwin does not support.
+# UNSUPPORTED: system-windows, system-darwin
+
+# RUN: not %{lit} -a -v %{inputs}/shtest-ulimit-nondarwin | FileCheck %s
+
+# CHECK: -- Testing: 1 tests{{.*}}
+
+# CHECK-LABEL: FAIL: shtest-ulimit :: ulimit_okay.txt ({{[^)]*}})
+# CHECK: ulimit -v 1048576
+# CHECK: RLIMIT_AS=1073741824
diff --git a/llvm/utils/lit/tests/shtest-ulimit.py b/llvm/utils/lit/tests/shtest-ulimit.py
index 444937f21eb02..15336d51ca3df 100644
--- a/llvm/utils/lit/tests/shtest-ulimit.py
+++ b/llvm/utils/lit/tests/shtest-ulimit.py
@@ -4,7 +4,6 @@
# UNSUPPORTED: system-windows
# 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{{.*}}
@@ -15,9 +14,3 @@
# CHECK-LABEL: FAIL: shtest-ulimit :: ulimit_okay.txt ({{[^)]*}})
# CHECK: ulimit -n 50
# 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
More information about the llvm-commits
mailing list