Skip to content

Commit

Permalink
Merge pull request NixOS#10624 from edolstra/flake-root-tests
Browse files Browse the repository at this point in the history
Add tests for dirOf/baseNameOf on the root of a flake
  • Loading branch information
edolstra authored Apr 30, 2024
2 parents 4161f3c + 503be57 commit e18c3d4
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/libfetchers/path.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ struct PathInputScheme : InputScheme
"narHash",
};
}

std::optional<Input> inputFromAttrs(const Attrs & attrs) const override
{
getStrAttr(attrs, "path");
Expand Down
4 changes: 4 additions & 0 deletions tests/functional/flakes/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ writeSimpleFlake() {
# To test "nix flake init".
legacyPackages.$system.hello = import ./simple.nix;
parent = builtins.dirOf ./.;
baseName = builtins.baseNameOf ./.;
};
}
EOF
Expand Down
6 changes: 6 additions & 0 deletions tests/functional/flakes/flakes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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.
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.
(! nix build -o "$TEST_ROOT/result" flake2#bar --no-registries)
(! nix build -o "$TEST_ROOT/result" flake2#bar --no-use-registries)
Expand Down

0 comments on commit e18c3d4

Please sign in to comment.