nix/tests
Eelco Dolstra 976df480c9 Add a primop for regular expression pattern matching
The function ‘builtins.match’ takes a POSIX extended regular
expression and an arbitrary string. It returns ‘null’ if the string
does not match the regular expression. Otherwise, it returns a list
containing substring matches corresponding to parenthesis groups in
the regex. The regex must match the entire string (i.e. there is an
implied "^<pat>$" around the regex).  For example:

  match "foo" "foobar" => null
  match "foo" "foo" => []
  match "f(o+)(.*)" "foooobar" => ["oooo" "bar"]
  match "(.*/)?([^/]*)" "/dir/file.nix" => ["/dir/" "file.nix"]
  match "(.*/)?([^/]*)" "file.nix" => [null "file.nix"]

The following example finds all regular files with extension .nix or
.patch underneath the current directory:

  let

    findFiles = pat: dir: concatLists (mapAttrsToList (name: type:
      if type == "directory" then
        findFiles pat (dir + "/" + name)
      else if type == "regular" && match pat name != null then
        [(dir + "/" + name)]
      else []) (readDir dir));

  in findFiles ".*\\.(nix|patch)" (toString ./.)
2014-11-25 11:47:06 +01:00
..
lang Add a primop for regular expression pattern matching 2014-11-25 11:47:06 +01:00
add.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
binary-cache.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
binary-patching.nix * Urgh, FreeBSD doesn't have a "seq" command. 2011-02-09 14:03:16 +00:00
binary-patching.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
build-hook.hook.sh Fix tests 2014-08-21 21:50:19 +02:00
build-hook.nix Fix test 2013-10-17 11:18:37 +02:00
build-hook.sh Fix test 2014-07-11 16:22:24 +02:00
case-hack.sh Fix tests 2014-08-21 21:50:19 +02:00
case.nar Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
check-refs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-refs.sh Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-reqs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-reqs.sh Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
common.sh.in Fix use of PAGER during tests 2014-09-23 15:18:44 +02:00
config.nix Add support for ‘make installcheck’ 2013-11-25 18:47:03 +01:00
dependencies.builder0.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
dependencies.builder1.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.builder2.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.nix Test string semantics a bit more 2013-10-17 01:12:43 +02:00
dependencies.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
dump-db.sh Add a test for nix-store --dump-db / --load-db 2014-02-26 17:47:54 +01:00
export-graph.nix Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export-graph.sh Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
fallback.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
fetchurl.nix Add a test for the fetchurl function 2012-07-09 15:41:43 -04:00
fetchurl.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
filter-source.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
filter-source.sh Fix tests 2014-08-21 21:50:19 +02:00
fixed.builder1.sh * Test the impureEnvVars feature. 2007-09-11 13:32:04 +00:00
fixed.builder2.sh * Test case to show that parallel builds of different fixed-output 2007-08-28 09:21:47 +00:00
fixed.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
fixed.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
gc-concurrent2.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-concurrent.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-concurrent.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-concurrent.sh Fix tests 2014-08-21 21:50:19 +02:00
gc-runtime.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-runtime.sh Replace "make check" with "make installcheck" 2012-03-19 01:20:02 +01:00
gc.sh Test nix-store -q --roots 2014-02-26 18:00:46 +01:00
hash-check.nix * Purify `make check'. 2006-07-21 13:21:43 +00:00
hash.sh Replace "make check" with "make installcheck" 2012-03-19 01:20:02 +01:00
import-derivation.nix * Add a test for importing derivations. 2012-01-26 13:04:50 +00:00
import-derivation.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
init.sh Fix Debian tests 2014-05-02 19:02:10 +02:00
install-package.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
lang.sh Fix tests 2014-08-21 21:50:19 +02:00
local.mk Introduce allowedRequisites feature 2014-08-28 18:23:55 +02:00
logging.sh Fix tests 2014-08-21 21:50:19 +02:00
misc.sh nix-instantiate: Rename --eval-only to --eval, --parse-only to --parse 2014-02-19 16:34:24 +01:00
multiple-outputs.nix Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
multiple-outputs.sh Fix tests 2014-08-21 21:50:19 +02:00
negative-caching.nix * Negative caching, i.e. caching of build failures. Disabled by 2009-03-25 21:05:42 +00:00
negative-caching.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
nix-build.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
nix-channel.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
nix-copy-closure.nix Add a test for the SSH substituter 2014-07-10 01:53:56 +02:00
nix-profile.sh Fix the nix-profile test 2014-02-01 15:37:50 +01:00
nix-pull.sh Fix test failure on Darwin 2012-09-12 11:29:10 -04:00
nix-push.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
optimise-store.sh Test nix-store --optimise 2014-02-26 17:53:51 +01:00
parallel.builder.sh Drop dependency on ‘expr’ 2014-02-06 13:51:57 +01:00
parallel.nix * Make this test a bit more robust. It's still timing dependent 2009-03-23 15:16:36 +00:00
parallel.sh Add support for ‘make installcheck’ 2013-11-25 18:47:03 +01:00
referrers.sh Clean up a test warning 2014-02-06 13:54:44 +01:00
remote-builds.nix tests/remote-builds.nix: Time out faster 2014-09-05 11:49:07 +02:00
remote-store.sh Doh 2014-02-26 22:41:29 +01:00
repair.sh Test nix-store --verify-path and --repair-path 2014-02-17 23:24:12 +01:00
secure-drv-outputs.nix * On FreeBSD, ‘touch’ is not in the test $PATH, so don't use it. 2011-08-08 14:08:38 +00:00
secure-drv-outputs.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
simple.builder.sh * Fix the tests. 2007-08-13 13:15:02 +00:00
simple.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
simple.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
substituter2.sh Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
substituter.sh Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
substitutes2.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
substitutes.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
timeout.builder.sh Use proper quotes everywhere 2014-08-20 18:03:48 +02:00
timeout.nix Show that --timeout doesn't work if the build produces log output 2013-04-23 17:16:29 +02:00
timeout.sh Use proper quotes everywhere 2014-08-20 18:03:48 +02:00
user-envs.builder.sh Test priorities 2012-12-04 14:47:50 +01:00
user-envs.nix Test priorities 2012-12-04 14:47:50 +01:00
user-envs.sh Fix tests 2014-08-21 21:50:19 +02:00