summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-09-30 01:47:10 +0200
committerSilvan Mosberger <contact@infinisil.com>2021-05-03 22:16:06 +0200
commit8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4 (patch)
treebad03f138c7df9f2970b3c3d87fd37ce0b875919 /lib
parent4b54aedee5e05aaf2838f6d951508b83e33d2baa (diff)
downloadnixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar.gz
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar.bz2
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar.lz
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar.xz
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.tar.zst
nixpkgs-8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4.zip
lib/tests: Add type deprecation tests
Diffstat (limited to 'lib')
-rwxr-xr-xlib/tests/modules.sh6
-rw-r--r--lib/tests/modules/type-deprecation.nix39
2 files changed, 45 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 2e57c2f8e2a..4259c538bb4 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -272,6 +272,12 @@ checkConfigError 'A definition for option .fun.\[function body\]. is not of type
 checkConfigOutput "b a" config.result ./functionTo/list-order.nix
 checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix
 
+## Type deprecation
+checkConfigError 'The type `types.simple'\'' of option `simple'\'' defined in .* is deprecated. simple shall not be used' config.simple ./type-deprecation.nix
+checkConfigError 'The type `types.infinite'\'' of option `infinite'\'' defined in .* is deprecated. infinite shall not be used' config.infinite ./type-deprecation.nix
+checkConfigError 'The type `types.left'\'' of option `nested'\'' defined in .* is deprecated. left shall not be used' config.nested ./type-deprecation.nix
+checkConfigError 'The type `types.right'\'' of option `nested'\'' defined in .* is deprecated. right shall not be used' config.nested ./type-deprecation.nix
+
 cat <<EOF
 ====== module tests ======
 $pass Pass
diff --git a/lib/tests/modules/type-deprecation.nix b/lib/tests/modules/type-deprecation.nix
new file mode 100644
index 00000000000..2d7a1fc9aca
--- /dev/null
+++ b/lib/tests/modules/type-deprecation.nix
@@ -0,0 +1,39 @@
+{ lib, ... }: {
+
+  options.simple = lib.mkOption {
+    type = lib.mkOptionType {
+      name = "simple";
+      deprecationMessage = "simple shall not be used";
+    };
+    default = throw "";
+  };
+
+  options.infinite = lib.mkOption {
+    type =
+      let
+        t = lib.mkOptionType {
+          name = "infinite";
+          deprecationMessage = "infinite shall not be used";
+        };
+        r = lib.types.either t (lib.types.attrsOf r);
+      in r;
+    default = throw "";
+  };
+
+  options.nested = lib.mkOption {
+    type =
+      let
+        left = lib.mkOptionType {
+          name = "left";
+          deprecationMessage = "left shall not be used";
+        };
+        right = lib.mkOptionType {
+          name = "right";
+          deprecationMessage = "right shall not be used";
+        };
+      in lib.types.either left right;
+
+    default = throw "";
+  };
+
+}