Loading lib/tests/misc.nix +7 −21 Original line number Diff line number Diff line Loading @@ -386,35 +386,21 @@ runTests { expected = 9223372036854775807; }; testFromHexStringLeadingZeroes = { expr = fromHexString "00ffffffffffffff"; expected = 72057594037927935; }; testFromHexStringWithPrefix = { expr = fromHexString "0Xf"; expr = fromHexString "0xf"; expected = 15; }; # FIXME: This might be bad and should potentially be deprecated. testFromHexStringQuestionableMixedCase = { testFromHexStringMixedCase = { expr = fromHexString "eEeEe"; expected = 978670; }; # FIXME: This is probably bad and should potentially be deprecated. testFromHexStringQuestionableUnderscore = { expr = fromHexString "F_f"; expected = 255; }; # FIXME: This is definitely bad and should be deprecated. testFromHexStringBadComment = { expr = fromHexString "0 # oops"; expected = 0; }; # FIXME: Oh my god. testFromHexStringAwfulInjection = { expr = fromHexString "1\nwhoops = {}"; expected = 1; }; testToBaseDigits = { expr = toBaseDigits 2 6; expected = [ Loading lib/trivial.nix +13 −6 Original line number Diff line number Diff line Loading @@ -1119,14 +1119,21 @@ in ``` */ fromHexString = value: str: let noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower value); match = builtins.match "(0x)?([0-7]?[0-9A-Fa-f]{1,15})" str; in if match != null then (builtins.fromTOML "v=0x${builtins.elemAt match 1}").v else # TODO: Turn this into a `throw` in 26.05. assert lib.warn "fromHexString: ${ lib.generators.toPretty { } str } is not a valid input and will be rejected in 26.05" true; let parsed = builtins.fromTOML "v=0x${noPrefix}"; noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower str); in parsed.v; (builtins.fromTOML "v=0x${noPrefix}").v; /** Convert the given positive integer to a string of its hexadecimal Loading Loading
lib/tests/misc.nix +7 −21 Original line number Diff line number Diff line Loading @@ -386,35 +386,21 @@ runTests { expected = 9223372036854775807; }; testFromHexStringLeadingZeroes = { expr = fromHexString "00ffffffffffffff"; expected = 72057594037927935; }; testFromHexStringWithPrefix = { expr = fromHexString "0Xf"; expr = fromHexString "0xf"; expected = 15; }; # FIXME: This might be bad and should potentially be deprecated. testFromHexStringQuestionableMixedCase = { testFromHexStringMixedCase = { expr = fromHexString "eEeEe"; expected = 978670; }; # FIXME: This is probably bad and should potentially be deprecated. testFromHexStringQuestionableUnderscore = { expr = fromHexString "F_f"; expected = 255; }; # FIXME: This is definitely bad and should be deprecated. testFromHexStringBadComment = { expr = fromHexString "0 # oops"; expected = 0; }; # FIXME: Oh my god. testFromHexStringAwfulInjection = { expr = fromHexString "1\nwhoops = {}"; expected = 1; }; testToBaseDigits = { expr = toBaseDigits 2 6; expected = [ Loading
lib/trivial.nix +13 −6 Original line number Diff line number Diff line Loading @@ -1119,14 +1119,21 @@ in ``` */ fromHexString = value: str: let noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower value); match = builtins.match "(0x)?([0-7]?[0-9A-Fa-f]{1,15})" str; in if match != null then (builtins.fromTOML "v=0x${builtins.elemAt match 1}").v else # TODO: Turn this into a `throw` in 26.05. assert lib.warn "fromHexString: ${ lib.generators.toPretty { } str } is not a valid input and will be rejected in 26.05" true; let parsed = builtins.fromTOML "v=0x${noPrefix}"; noPrefix = lib.strings.removePrefix "0x" (lib.strings.toLower str); in parsed.v; (builtins.fromTOML "v=0x${noPrefix}").v; /** Convert the given positive integer to a string of its hexadecimal Loading