tvl-depot/third_party/nix/tests/lang/eval-okay-regex-match.nix
Vincent Ambo 7994fd1d54 Add 'third_party/nix/' from commit 'be66c7a6b24e3c3c6157fd37b86c7203d14acf10'
git-subtree-dir: third_party/nix
git-subtree-mainline: cf8cd640c1
git-subtree-split: be66c7a6b24e3c3c6157fd37b86c7203d14acf10
2020-05-17 15:52:38 +01:00

29 lines
814 B
Nix

with builtins;
let
matches = pat: s: match pat s != null;
splitFN = match "((.*)/)?([^/]*)\\.(nix|cc)";
in
assert matches "foobar" "foobar";
assert matches "fo*" "f";
assert !matches "fo+" "f";
assert matches "fo*" "fo";
assert matches "fo*" "foo";
assert matches "fo+" "foo";
assert matches "fo{1,2}" "foo";
assert !matches "fo{1,2}" "fooo";
assert !matches "fo*" "foobar";
assert matches "[[:space:]]+([^[:space:]]+)[[:space:]]+" " foo ";
assert !matches "[[:space:]]+([[:upper:]]+)[[:space:]]+" " foo ";
assert match "(.*)\\.nix" "foobar.nix" == [ "foobar" ];
assert match "[[:space:]]+([[:upper:]]+)[[:space:]]+" " FOO " == [ "FOO" ];
assert splitFN "/path/to/foobar.nix" == [ "/path/to/" "/path/to" "foobar" "nix" ];
assert splitFN "foobar.cc" == [ null null "foobar" "cc" ];
true