Merge pull request #7149 from amjoseph-nixpkgs/pr/intersectAttrs/values

parseDrvName: remove doc/impl discrepancy, add test covering the gap
This commit is contained in:
Eelco Dolstra 2022-10-12 10:00:39 +02:00 committed by GitHub
commit f3193edd87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View file

@ -3821,8 +3821,8 @@ static RegisterPrimOp primop_parseDrvName({
.args = {"s"}, .args = {"s"},
.doc = R"( .doc = R"(
Split the string *s* into a package name and version. The package Split the string *s* into a package name and version. The package
name is everything up to but not including the first dash followed name is everything up to but not including the first dash not followed
by a digit, and the version is everything following that dash. The by a letter, and the version is everything following that dash. The
result is returned in a set `{ name, version }`. Thus, result is returned in a set `{ name, version }`. Thus,
`builtins.parseDrvName "nix-0.12pre12876"` returns `{ name = `builtins.parseDrvName "nix-0.12pre12876"` returns `{ name =
"nix"; version = "0.12pre12876"; }`. "nix"; version = "0.12pre12876"; }`.

View file

@ -4,6 +4,7 @@ let
name2 = "hello"; name2 = "hello";
name3 = "915resolution-0.5.2"; name3 = "915resolution-0.5.2";
name4 = "xf86-video-i810-1.7.4"; name4 = "xf86-video-i810-1.7.4";
name5 = "name-that-ends-with-dash--1.0";
eq = 0; eq = 0;
lt = builtins.sub 0 1; lt = builtins.sub 0 1;
@ -23,6 +24,8 @@ let
((builtins.parseDrvName name3).version == "0.5.2") ((builtins.parseDrvName name3).version == "0.5.2")
((builtins.parseDrvName name4).name == "xf86-video-i810") ((builtins.parseDrvName name4).name == "xf86-video-i810")
((builtins.parseDrvName name4).version == "1.7.4") ((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 "1.0" "2.3" lt)
(versionTest "2.1" "2.3" lt) (versionTest "2.1" "2.3" lt)
(versionTest "2.3" "2.3" eq) (versionTest "2.3" "2.3" eq)