diff options
author | Silvan Mosberger <contact@infinisil.com> | 2020-04-02 05:58:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-02 05:58:13 +0200 |
commit | f75c11cfdfff3448623250e151cb47df70d4f224 (patch) | |
tree | 8948892200eb72dfc795004b0220bb8d57297c62 /lib/tests | |
parent | 783da8ca5106cc81fd24c746e1b0009a82faba86 (diff) | |
parent | 4b206ac83ba23e44231088b1d5f23d96adbced05 (diff) | |
download | nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar.gz nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar.bz2 nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar.lz nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar.xz nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.tar.zst nixpkgs-f75c11cfdfff3448623250e151cb47df70d4f224.zip |
Merge pull request #83241 from Infinisil/valid-drv-name
lib/strings: Add `sanitizeDerivationName` function
Diffstat (limited to 'lib/tests')
-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 739c5d5fe15..36ddd186d7b 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 { @@ -490,4 +507,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"; + }; } |