aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorpiegames <git@piegames.de>2024-08-18 16:02:23 +0200
committerpiegames <git@piegames.de>2024-08-21 06:55:52 +0000
commit7210ed1b87410a0df597c0c4efe642bf82cc2b06 (patch)
tree85be2a9cc889c74da6a16dd8ca64713f86ce8691 /tests
parentac6974777efdaa85715cf7838fe878665061f86c (diff)
libexpr: Soft-deprecate __overrides
Change-Id: I787e69e1dad6edc5ccdb747b74a9ccd6e8e13bb3
Diffstat (limited to 'tests')
-rwxr-xr-xtests/functional/lang.sh25
-rw-r--r--tests/functional/lang/eval-fail-set-override.flags1
-rw-r--r--tests/functional/lang/eval-okay-attrs6.flags1
-rw-r--r--tests/functional/lang/eval-okay-inherit-from.flags1
-rw-r--r--tests/functional/lang/eval-okay-overrides.flags1
l---------tests/functional/lang/parse-okay-rec-set-override-nowarning.exp1
-rw-r--r--tests/functional/lang/parse-okay-rec-set-override-nowarning.flags1
l---------tests/functional/lang/parse-okay-rec-set-override-nowarning.nix1
-rw-r--r--tests/functional/lang/parse-okay-rec-set-override-warning.err.exp2
-rw-r--r--tests/functional/lang/parse-okay-rec-set-override-warning.exp1
-rw-r--r--tests/functional/lang/parse-okay-rec-set-override-warning.nix9
-rw-r--r--tests/functional/lang/parse-okay-regression-20041027.flags1
-rw-r--r--tests/functional/lang/parse-okay-url.flags1
13 files changed, 40 insertions, 6 deletions
diff --git a/tests/functional/lang.sh b/tests/functional/lang.sh
index aa41b41d8..59db10340 100755
--- a/tests/functional/lang.sh
+++ b/tests/functional/lang.sh
@@ -53,10 +53,11 @@ done
for i in lang/parse-okay-*.nix; do
echo "parsing $i (should succeed)";
i=$(basename "$i" .nix)
- # Hard-code that these two files are allowed to use url literals (because they test them)
- if [[ "$i" == "parse-okay-url" || "$i" == "parse-okay-regression-20041027" ]]
- then
- extraArgs="--extra-deprecated-features url-literals"
+
+ if [ -e "lang/$i.flags" ]; then
+ extraArgs="$(cat "lang/$i.flags")"
+ else
+ extraArgs=""
fi
if
expect 0 nix-instantiate --parse ${extraArgs-} - < "lang/$i.nix" \
@@ -75,8 +76,14 @@ done
for i in lang/eval-fail-*.nix; do
echo "evaluating $i (should fail)";
i=$(basename "$i" .nix)
+
+ if [ -e "lang/$i.flags" ]; then
+ extraArgs="$(cat "lang/$i.flags")"
+ else
+ extraArgs=""
+ fi
if
- expectStderr 1 nix-instantiate --eval --strict --show-trace "lang/$i.nix" \
+ expectStderr 1 nix-instantiate --eval --strict --show-trace ${extraArgs-} "lang/$i.nix" \
| sed "s!$(pwd)!/pwd!g" > "lang/$i.err"
then
diffAndAccept "$i" err err.exp
@@ -90,8 +97,14 @@ for i in lang/eval-okay-*.nix; do
echo "evaluating $i (should succeed)";
i=$(basename "$i" .nix)
+ if [ -e "lang/$i.flags" ]; then
+ extraArgs="$(cat "lang/$i.flags")"
+ else
+ extraArgs=""
+ fi
+
if test -e "lang/$i.exp.xml"; then
- if expect 0 nix-instantiate --eval --xml --no-location --strict \
+ if expect 0 nix-instantiate --eval --xml --no-location --strict ${extraArgs-} \
"lang/$i.nix" > "lang/$i.out.xml"
then
diffAndAccept "$i" out.xml exp.xml
diff --git a/tests/functional/lang/eval-fail-set-override.flags b/tests/functional/lang/eval-fail-set-override.flags
new file mode 100644
index 000000000..a0e513a81
--- /dev/null
+++ b/tests/functional/lang/eval-fail-set-override.flags
@@ -0,0 +1 @@
+--extra-deprecated-features rec-set-overrides
diff --git a/tests/functional/lang/eval-okay-attrs6.flags b/tests/functional/lang/eval-okay-attrs6.flags
new file mode 100644
index 000000000..a0e513a81
--- /dev/null
+++ b/tests/functional/lang/eval-okay-attrs6.flags
@@ -0,0 +1 @@
+--extra-deprecated-features rec-set-overrides
diff --git a/tests/functional/lang/eval-okay-inherit-from.flags b/tests/functional/lang/eval-okay-inherit-from.flags
new file mode 100644
index 000000000..a0e513a81
--- /dev/null
+++ b/tests/functional/lang/eval-okay-inherit-from.flags
@@ -0,0 +1 @@
+--extra-deprecated-features rec-set-overrides
diff --git a/tests/functional/lang/eval-okay-overrides.flags b/tests/functional/lang/eval-okay-overrides.flags
new file mode 100644
index 000000000..a0e513a81
--- /dev/null
+++ b/tests/functional/lang/eval-okay-overrides.flags
@@ -0,0 +1 @@
+--extra-deprecated-features rec-set-overrides
diff --git a/tests/functional/lang/parse-okay-rec-set-override-nowarning.exp b/tests/functional/lang/parse-okay-rec-set-override-nowarning.exp
new file mode 120000
index 000000000..687e738ee
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-nowarning.exp
@@ -0,0 +1 @@
+parse-okay-rec-set-override-warning.exp \ No newline at end of file
diff --git a/tests/functional/lang/parse-okay-rec-set-override-nowarning.flags b/tests/functional/lang/parse-okay-rec-set-override-nowarning.flags
new file mode 100644
index 000000000..a0e513a81
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-nowarning.flags
@@ -0,0 +1 @@
+--extra-deprecated-features rec-set-overrides
diff --git a/tests/functional/lang/parse-okay-rec-set-override-nowarning.nix b/tests/functional/lang/parse-okay-rec-set-override-nowarning.nix
new file mode 120000
index 000000000..f92d1596f
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-nowarning.nix
@@ -0,0 +1 @@
+parse-okay-rec-set-override-warning.nix \ No newline at end of file
diff --git a/tests/functional/lang/parse-okay-rec-set-override-warning.err.exp b/tests/functional/lang/parse-okay-rec-set-override-warning.err.exp
new file mode 100644
index 000000000..5ed2d7dee
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-warning.err.exp
@@ -0,0 +1,2 @@
+warning: __overrides found at «stdin»:3:16. This feature is deprecated and will be removed in the future. Use --extra-deprecated-features rec-set-overrides to silence this warning.
+warning: __overrides found at «stdin»:4:2. This feature is deprecated and will be removed in the future. Use --extra-deprecated-features rec-set-overrides to silence this warning.
diff --git a/tests/functional/lang/parse-okay-rec-set-override-warning.exp b/tests/functional/lang/parse-okay-rec-set-override-warning.exp
new file mode 100644
index 000000000..ea17c88f5
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-warning.exp
@@ -0,0 +1 @@
+[ ({ a = rec { __overrides = { }; }; }) (rec { __overrides = { }; }) ({ __overrides = { }; }) (rec { "${("__overrides" + "")}" = { }; }) ]
diff --git a/tests/functional/lang/parse-okay-rec-set-override-warning.nix b/tests/functional/lang/parse-okay-rec-set-override-warning.nix
new file mode 100644
index 000000000..a81d46d53
--- /dev/null
+++ b/tests/functional/lang/parse-okay-rec-set-override-warning.nix
@@ -0,0 +1,9 @@
+[
+ # Should warn
+ { a = rec {}; a.__overrides = {}; }
+ rec { __overrides = {}; }
+ # Should not warn: Not recursive
+ { __overrides = {}; }
+ # Should not warn: Dynamic
+ rec { ${"__overrides" + ""} = {}; }
+]
diff --git a/tests/functional/lang/parse-okay-regression-20041027.flags b/tests/functional/lang/parse-okay-regression-20041027.flags
new file mode 100644
index 000000000..86329a66e
--- /dev/null
+++ b/tests/functional/lang/parse-okay-regression-20041027.flags
@@ -0,0 +1 @@
+--extra-deprecated-features url-literals
diff --git a/tests/functional/lang/parse-okay-url.flags b/tests/functional/lang/parse-okay-url.flags
new file mode 100644
index 000000000..86329a66e
--- /dev/null
+++ b/tests/functional/lang/parse-okay-url.flags
@@ -0,0 +1 @@
+--extra-deprecated-features url-literals