diff options
author | Silvan Mosberger <contact@infinisil.com> | 2020-01-27 23:03:38 +0100 |
---|---|---|
committer | Silvan Mosberger <contact@infinisil.com> | 2020-03-30 01:15:30 +0200 |
commit | 4b206ac83ba23e44231088b1d5f23d96adbced05 (patch) | |
tree | 28d473e718049da788322588e477c869ce82fc48 /lib/tests/misc.nix | |
parent | 5e46d5a7b59d69e7b86239195f58d26277ae0370 (diff) | |
download | nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar.gz nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar.bz2 nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar.lz nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar.xz nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.tar.zst nixpkgs-4b206ac83ba23e44231088b1d5f23d96adbced05.zip |
lib/strings: Add sanitizeDerivationName function
Diffstat (limited to 'lib/tests/misc.nix')
-rw-r--r-- | lib/tests/misc.nix | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 59ed1e507e2..c1b2f738ead 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -3,6 +3,23 @@ # if the resulting list is empty, all tests passed with import ../default.nix; +let + + testSanitizeDerivationName = { name, expected }: + let + drv = derivation { + name = strings.sanitizeDerivationName name; + builder = "x"; + system = "x"; + }; + in { + # Evaluate the derivation so an invalid name would be caught + expr = builtins.seq drv.drvPath drv.name; + inherit expected; + }; + +in + runTests { @@ -478,4 +495,29 @@ runTests { expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'"; }; + + testSanitizeDerivationNameLeadingDots = testSanitizeDerivationName { + name = "..foo"; + expected = "foo"; + }; + + testSanitizeDerivationNameAscii = testSanitizeDerivationName { + name = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; + expected = "-+--.-0123456789-=-?-ABCDEFGHIJKLMNOPQRSTUVWXYZ-_-abcdefghijklmnopqrstuvwxyz-"; + }; + + testSanitizeDerivationNameTooLong = testSanitizeDerivationName { + name = "This string is loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + expected = "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + }; + + testSanitizeDerivationNameTooLongWithInvalid = testSanitizeDerivationName { + name = "Hello there aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&&&&&&&"; + expected = "there-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-"; + }; + + testSanitizeDerivationNameEmpty = testSanitizeDerivationName { + name = ""; + expected = "unknown"; + }; } |