about summary refs log tree commit diff
path: root/lib/fileset/tests.sh
diff options
context:
space:
mode:
authorSilvan Mosberger <silvan.mosberger@tweag.io>2023-09-29 20:07:08 +0200
committerSilvan Mosberger <silvan.mosberger@tweag.io>2023-09-29 20:30:29 +0200
commit3cbbea53a12ebd461e047e594027ee6777f36e68 (patch)
tree9a39eaac957da67a58b8cab57ed8a0911cc47b05 /lib/fileset/tests.sh
parentc182df2e68bd97deb32c7e4765adfbbbcaf75b60 (diff)
lib.fileset: Don't use non-reproducible ulimit for stack overflow testing
Diffstat (limited to 'lib/fileset/tests.sh')
-rwxr-xr-xlib/fileset/tests.sh13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/fileset/tests.sh b/lib/fileset/tests.sh
index 0ea96859e7a34..774b8f29d93fe 100755
--- a/lib/fileset/tests.sh
+++ b/lib/fileset/tests.sh
@@ -467,12 +467,13 @@ for i in $(seq 1000); do
     tree[$i/a]=1
     tree[$i/b]=0
 done
-(
-    # Locally limit the maximum stack size to 100 * 1024 bytes
-    # If unions was implemented recursively, this would stack overflow
-    ulimit -s 100
-    checkFileset 'unions (mapAttrsToList (name: _: ./. + "/${name}/a") (builtins.readDir ./.))'
-)
+# This is actually really hard to test:
+# A lot of files would be needed to cause a stack overflow.
+# And while we could limit the maximum stack size using `ulimit -s`,
+# that turns out to not be very deterministic: https://github.com/NixOS/nixpkgs/pull/256417#discussion_r1339396686.
+# Meanwhile, the test infra here is not the fastest, creating 10000 would be too slow.
+# So, just using 1000 files for now.
+checkFileset 'unions (mapAttrsToList (name: _: ./. + "/${name}/a") (builtins.readDir ./.))'
 
 # TODO: Once we have combinators and a property testing library, derive property tests from https://en.wikipedia.org/wiki/Algebra_of_sets