···
42
-
if evalConfig "$@" 2>/dev/null | grep --silent "$outputContains" ; then
42
+
if evalConfig "$@" 2>/dev/null | grep -E --silent "$outputContains" ; then
echo 2>&1 "error: Expected result matching '$outputContains', while evaluating"
···
# Anonymous modules get deduplicated by key
checkConfigOutput '^"pear"$' config.once.raw ./merge-module-with-key.nix
checkConfigOutput '^"pear\\npear"$' config.twice.raw ./merge-module-with-key.nix
442
+
# Declaration positions
443
+
# Line should be present for direct options
444
+
checkConfigOutput '^10$' options.imported.line10.declarationPositions.0.line ./declaration-positions.nix
445
+
checkConfigOutput '/declaration-positions.nix"$' options.imported.line10.declarationPositions.0.file ./declaration-positions.nix
446
+
# Generated options may not have line numbers but they will at least get the
448
+
checkConfigOutput '/declaration-positions.nix"$' options.generated.line18.declarationPositions.0.file ./declaration-positions.nix
449
+
checkConfigOutput '^null$' options.generated.line18.declarationPositions.0.line ./declaration-positions.nix
450
+
# Submodules don't break it
451
+
checkConfigOutput '^39$' config.submoduleLine34.submodDeclLine39.0.line ./declaration-positions.nix
452
+
checkConfigOutput '/declaration-positions.nix"$' config.submoduleLine34.submodDeclLine39.0.file ./declaration-positions.nix
453
+
# New options under freeform submodules get collected into the parent submodule
454
+
# (consistent with .declarations behaviour, but weird; notably appears in system.build)
455
+
checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.0.line ./declaration-positions.nix
456
+
checkConfigOutput '^34|23$' options.submoduleLine34.declarationPositions.1.line ./declaration-positions.nix
457
+
# nested options work
458
+
checkConfigOutput '^30$' options.nested.nestedLine30.declarationPositions.0.line ./declaration-positions.nix
====== module tests ======