Skip to content

Commit

Permalink
Merge pull request #7149 from amjoseph-nixpkgs/pr/intersectAttrs/values
Browse files Browse the repository at this point in the history
parseDrvName: remove doc/impl discrepancy, add test covering the gap
  • Loading branch information
edolstra authored Oct 12, 2022
2 parents ac0fb38 + 5e24863 commit f3193ed
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/libexpr/primops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3821,8 +3821,8 @@ static RegisterPrimOp primop_parseDrvName({
.args = {"s"},
.doc = R"(
Split the string *s* into a package name and version. The package
name is everything up to but not including the first dash followed
by a digit, and the version is everything following that dash. The
name is everything up to but not including the first dash not followed
by a letter, and the version is everything following that dash. The
result is returned in a set `{ name, version }`. Thus,
`builtins.parseDrvName "nix-0.12pre12876"` returns `{ name =
"nix"; version = "0.12pre12876"; }`.
Expand Down
3 changes: 3 additions & 0 deletions tests/lang/eval-okay-versions.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ let
name2 = "hello";
name3 = "915resolution-0.5.2";
name4 = "xf86-video-i810-1.7.4";
name5 = "name-that-ends-with-dash--1.0";

eq = 0;
lt = builtins.sub 0 1;
Expand All @@ -23,6 +24,8 @@ let
((builtins.parseDrvName name3).version == "0.5.2")
((builtins.parseDrvName name4).name == "xf86-video-i810")
((builtins.parseDrvName name4).version == "1.7.4")
((builtins.parseDrvName name5).name == "name-that-ends-with-dash")
((builtins.parseDrvName name5).version == "-1.0")
(versionTest "1.0" "2.3" lt)
(versionTest "2.1" "2.3" lt)
(versionTest "2.3" "2.3" eq)
Expand Down

0 comments on commit f3193ed

Please sign in to comment.