summary refs log tree commit diff
path: root/lib/tests
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2021-08-26 00:28:49 +0200
committerMaximilian Bosch <maximilian@mbosch.me>2021-08-26 00:28:49 +0200
commit5773ae93f75cfd504d7971c1b26955fa50a00744 (patch)
treed5f19ba068e4efee4f711e1dad969cf3b3c61470 /lib/tests
parentb6d3c9f821b704fbfb68d20a76520fa9e160df36 (diff)
downloadnixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar.gz
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar.bz2
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar.lz
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar.xz
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.tar.zst
nixpkgs-5773ae93f75cfd504d7971c1b26955fa50a00744.zip
lib/generators: move limit detection into `withRecursion`
As suggested in #131205.

Now it's possible to pretty-print a value with `lib.generators` like
this:

    with lib.generators;
    toPretty { }
      (withRecursion { depthLimit = 10; } /* arbitrarily complex value */)

Also, this can be used for any other pretty-printer now if needed.
Diffstat (limited to 'lib/tests')
-rw-r--r--lib/tests/misc.nix7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 110716ca691..00eeaa2a77d 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -534,8 +534,8 @@ runTests {
       a.b = 1;
       a.c = a;
     in {
-      expr = generators.toPretty { depthLimit = 2; } a;
-      expected = "{\n  b = 1;\n  c = {\n    b = 1;\n    c = {\n      b = <unevaluated>;\n      c = <unevaluated>;\n    };\n  };\n}";
+      expr = generators.toPretty { } (generators.withRecursion { throwOnDepthLimit = false; depthLimit = 2; } a);
+      expected = "{\n  b = 1;\n  c = {\n    b = \"<unevaluated>\";\n    c = {\n      b = \"<unevaluated>\";\n      c = \"<unevaluated>\";\n    };\n  };\n}";
     };
 
   testToPrettyLimitThrow =
@@ -543,7 +543,8 @@ runTests {
       a.b = 1;
       a.c = a;
     in {
-      expr = (builtins.tryEval (generators.toPretty { depthLimit = 2; throwOnDepthLimit = true; } a)).success;
+      expr = (builtins.tryEval
+        (generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))).success;
       expected = false;
     };