From 4a416fd328d685b0946e5e6f40e5ea18e9c1adf0 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 9 Feb 2017 16:35:03 +0300 Subject: Add support for &dir/*[*][/] test path cleanup syntax --- tests/test/config-test/testscript | 9 +-- tests/test/script/runner/cleanup.test | 139 +++++++++++++++++++++++++--------- 2 files changed, 105 insertions(+), 43 deletions(-) (limited to 'tests') diff --git a/tests/test/config-test/testscript b/tests/test/config-test/testscript index 0851da7..2c262b7 100644 --- a/tests/test/config-test/testscript +++ b/tests/test/config-test/testscript @@ -7,8 +7,7 @@ test.options = --jobs 1 --quiet test.arguments = 'test(../proj/@./)' # Test out-of-src (for parallel). -#test.cleanups = &**/ # Cleanup out directory structure. -test.cleanups = &!./ #@@ TMP +test.cleanups = &**/ # Cleanup out directory structure. +mkdir proj +mkdir proj/build @@ -192,9 +191,3 @@ EOO $* config.test=tests/@{basics/baz/bar} >>EOO tests/script/basics/baz/bar EOO - -# @@ TMP HACK -# --rm -r all/ alias-pass/ alias-test/ alias-pass-test/ alias-pass-id-only/ \ - target-simple/ target-script/ id/ target-id/ target-ids/ id-group/ \ - id-in-group/ diff --git a/tests/test/script/runner/cleanup.test b/tests/test/script/runner/cleanup.test index 7b3539b..14e931e 100644 --- a/tests/test/script/runner/cleanup.test +++ b/tests/test/script/runner/cleanup.test @@ -144,47 +144,116 @@ b += --no-column : wildcard : { - : always + : self : - $c <'$* -d a/b -f a/b/c &a/***' && $b + { + : always + : + $c <'$* -d a/b -f a/b/c &a/***' && $b - : maybe - : - $c <'$* &?a/***' && $b + : maybe + : + $c <'$* &?a/***' && $b - : not-exists - : - : Test cleanup of a wildcard not matching any directory. - : - $c <'$* &a/***' && $b 2>>/EOE != 0 - testscript:1: error: registered for cleanup wildcard test/1/a/*** doesn't match a directory - EOE + : not-exists + : + : Test cleanup of a wildcard not matching any directory. + : + $c <'$* &a/***' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup wildcard test/1/a/*** doesn't match a directory + EOE - : out-wd - : - : Test cleanup of a wildcard out of the testscript working directory. - : - $c <'$* &../../a/***' && $b 2>>/EOE != 0 - testscript:1: error: wildcard cleanup ../../a/*** is out of working directory test/ - EOE + : out-wd + : + : Test cleanup of a wildcard out of the testscript working directory. + : + $c <'$* &../../a/***' && $b 2>>/EOE != 0 + testscript:1: error: wildcard cleanup ../../a/*** is out of working directory test/ + EOE - : in-wd - : - : Test cleanup registration of a wildcard matching the directory that being - : outside the test working directory is inside the testscript working - : directory. - : - $c <'$* &../a/***' && $b 2>>/EOE != 0 - testscript:1: error: registered for cleanup wildcard test/a/*** doesn't match a directory - EOE + : in-wd + : + : Test cleanup registration of a wildcard matching the directory that being + : outside the test working directory is inside the testscript working + : directory. + : + $c <'$* &../a/***' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup wildcard test/a/*** doesn't match a directory + EOE - : not-dir - : - : Test cleanup of a file as a wildcard. - : - $c <'$* -f a &a/***' && $b 2>>/~%EOE% != 0 - %error: unable to remove directory test/1/a/: .+% - EOE + : not-dir + : + : Test cleanup of a file as a wildcard. + : + $c <'$* -f a &a/***' && $b 2>>/~%EOE% != 0 + %error: unable to remove directory test/1/a/: .+% + EOE + } + + : dir + : + { + : always + : + { + : immediate + : + $c <'$* -d a/b &a/ &a/*/' && $b + + : recursive + : + $c <'$* -d a/b/c &a/ &a/**/' && $b + } + + : maybe + : + $c <'$* &?a/**/' && $b + + : not-exists + : + : Test cleanup of a wildcard that doesn't match any directory. + : + $c <'$* &a/**/' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup wildcard test/1/a/**/ doesn't match a directory + EOE + + : not-dir + : + : Test cleanup of a file as a directory wildcard. + : + $c <'$* -f a &a/**/' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup wildcard test/1/a/**/ doesn't match a directory + EOE + + : not-empty + : + : Test cleanup of a non-empty directory as a wildcard. + : + $c <'$* -d a/b/c -f a/b/d &a/**/' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup directory test/1/a/b/ is not empty + info: wildcard: 'test/1/a/**/' + EOE + } + + : file + : + { + : always + : + { + : immediate + : + $c <'$* -d a -f a/c &a/ &a/*' && $b + + : recursive + : + $c <'$* -d a/b -f a/c -f a/b/e &a/ &a/b/ &a/**' && $b + } + + : maybe + : + $c <'$* &?a/**' && $b + } } : order -- cgit v1.1