Merge pull request #10624 from edolstra/flake-root-tests

Add tests for dirOf/baseNameOf on the root of a flake
This commit is contained in:
Eelco Dolstra 2024-04-30 16:12:07 +02:00 committed by GitHub
commit e18c3d4670
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 0 deletions

View file

@ -54,6 +54,7 @@ struct PathInputScheme : InputScheme
"narHash", "narHash",
}; };
} }
std::optional<Input> inputFromAttrs(const Attrs & attrs) const override std::optional<Input> inputFromAttrs(const Attrs & attrs) const override
{ {
getStrAttr(attrs, "path"); getStrAttr(attrs, "path");

View file

@ -21,6 +21,10 @@ writeSimpleFlake() {
# To test "nix flake init". # To test "nix flake init".
legacyPackages.$system.hello = import ./simple.nix; legacyPackages.$system.hello = import ./simple.nix;
parent = builtins.dirOf ./.;
baseName = builtins.baseNameOf ./.;
}; };
} }
EOF EOF

View file

@ -231,6 +231,12 @@ nix build -o "$TEST_ROOT/result" --expr "(builtins.getFlake \"$flake1Dir\").pack
# 'getFlake' on a locked flakeref should succeed even in pure mode. # 'getFlake' on a locked flakeref should succeed even in pure mode.
nix build -o "$TEST_ROOT/result" --expr "(builtins.getFlake \"git+file://$flake1Dir?rev=$hash2\").packages.$system.default" nix build -o "$TEST_ROOT/result" --expr "(builtins.getFlake \"git+file://$flake1Dir?rev=$hash2\").packages.$system.default"
# Regression test for dirOf on the root of the flake.
[[ $(nix eval --json flake1#parent) = \""$NIX_STORE_DIR"\" ]]
# Regression test for baseNameOf on the root of the flake.
[[ $(nix eval --raw flake1#baseName) =~ ^[a-z0-9]*-source$ ]]
# Building a flake with an unlocked dependency should fail in pure mode. # Building a flake with an unlocked dependency should fail in pure mode.
(! nix build -o "$TEST_ROOT/result" flake2#bar --no-registries) (! nix build -o "$TEST_ROOT/result" flake2#bar --no-registries)
(! nix build -o "$TEST_ROOT/result" flake2#bar --no-use-registries) (! nix build -o "$TEST_ROOT/result" flake2#bar --no-use-registries)