From 5007870b52aa549971824959a55ad3bb886f09e0 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 3 Sep 2018 16:37:32 +0200 Subject: Rename .test/test{} to .testscript/testscript{} --- tests/test/script/runner/cleanup.testscript | 346 ++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 tests/test/script/runner/cleanup.testscript (limited to 'tests/test/script/runner/cleanup.testscript') diff --git a/tests/test/script/runner/cleanup.testscript b/tests/test/script/runner/cleanup.testscript new file mode 100644 index 0000000..7ea1acd --- /dev/null +++ b/tests/test/script/runner/cleanup.testscript @@ -0,0 +1,346 @@ +# file : tests/test/script/runner/cleanup.testscript +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include ../common.testscript + +b += --no-column + +: file +: +{ + : always + : + $c <'$* -f a &a' && $b + + : maybe + : + $c <'$* &?a' && $b + + : never + : + $c <'$* &!a' && $b + + : implicit + : + : Test that a file created out of the testscript working directory is not + : implicitly registered for cleanup. If it were, the test would fail due to + : the file absence at the cleanup time. + : + $c <+a; + rm a + EOI + + : not-exists + : + : Test cleanup of non-existing file. + : + $c <'$* &a' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup file test/1/a does not exist + EOE + + : out-wd + : + : Test explicit cleanup of a file out of the testscript working directory. + : + $c <'$* &../../a' && $b 2>>/EOE != 0 + testscript:1: error: file cleanup ../../a is out of working directory test/ + EOE + + : in-wd + : + : Test cleanup explicit registration of a file being outside the test working + : directory but inside the script working directory. + : + $c <'$* &../a' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup file test/a does not exist + EOE + + : not-file + : + : Test cleanup of a directory as a file. + : + $c <'$* -d a &a' && $b 2>>/~%EOE% != 0 + %error: unable to remove file test/1/a: .+% + EOE +} + +: dir +: +{ + : always + : + $c <'$* -d a &a/' && $b + + : maybe + : + $c <'$* &?a/' && $b + + : implicit + : + : Test that a directory created out of the testscript working directory is + : not implicitly registered for cleanup. If it were, the test would fail due + : to the directory absence at the cleanup time. + : + $c <>/EOE != 0 + testscript:1: error: registered for cleanup directory test/1/a/ does not exist + EOE + + : out-wd + : + : Test cleanup of a directory out of the testscript working directory. + : + $c <'$* &../../a/' && $b 2>>/EOE != 0 + testscript:1: error: directory cleanup ../../a/ is out of working directory test/ + EOE + + : in-wd + : + : Test cleanup explicit registration of a directory being outside the test + : working directory but inside the testscript working directory. + : + $c <'$* &../a/' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup directory test/a/ does not exist + EOE + + : not-empty + : + : Test cleanup of a non-empty directory. + : + { + : files + : + $c <>/~%EOE% != 0 + $* -d a -f a/0 -f a/1 -f a/2 -f a/3 -f a/4 -f a/5 -f a/6 -f a/7 -f a/8 \ + -f a/9 -f a/a -f a/b &a/ + EOI + testscript:2: error: registered for cleanup directory test/1/a/ is not empty + %.%{10} + and 2 more file(s) + EOE + + : dir + : + $c <'$* -d a/b' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup directory test/1/ is not empty + a/ + EOE + } + + : not-dir + : + : Test cleanup of a file as a directory. + : + $c <'$* -f a &a/' && $b 2>>/~%EOE% != 0 + %error: unable to remove directory test/1/a/: .+% + EOE +} + +: wildcard +: +{ + : self + : + { + : dirs + : + { + : always + : + $c <'$* -d a/b -d a/b/c &a/***/' && $b + + : maybe + : + $c <'$* &?a/***/' && $b + + : not-empty + : + $c <'$* -d a/b -d a/b/c -f a/c &a/***/' && $b 2>>/EOE != 0 + testscript:1: error: registered for cleanup directory test/1/a/ is not empty + c + info: wildcard: 'test/1/a/***/' + EOE + } + + : all-entries + : + : Test the trailing triple-star special case. + : + { + : always + : + $c <'$* -d a1/b -f a1/b/c -d a2/b -f a2/b/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 directory test/1/a/ does not exist + 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 directory test/a/ does not exist + 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 aa/b &aa/ &a*/*/' && $b + + : recursive + : + $c <'$* -d aa/b/c &aa/ &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 any 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 any 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 + d + info: wildcard: 'test/1/a/**/' + EOE + } + + : file + : + { + : always + : + { + : immediate + : + $c <'$* -d aa -f aa/c &aa/ &a?/*' && $b + + : recursive + : + $c <'$* -d aa/b -f aa/c -f aa/b/e &aa/ &aa/b/ &a*/**' && $b + } + + : maybe + : + $c <'$* &?a/**' && $b + } +} + +: order +: +: Test that cleanup is performed in registration reversed order. +: +$c <'$* -d a/b &a/ &a/b/' && $b + +: special-order +: +: Test that special files are cleaned before others, and there is no attempt +: to remove them twice (normally and with wildcard cleanup). +: +$c <'foo'; +$* -f bar &* +EOI + +: wd-wildcard +: +: Test that there is no attempt to remove working directory twice (normally and +: with wildcard cleanup). +: +$c <=a &!a' && $b 2>>/EOE != 0 +testscript:1: error: registered for cleanup directory test/1/ is not empty +a +EOE + +: explicit-overwrite +: +: Test an explicit cleanup not being overwritten with the implicit one. +: +$c <>/EOE != 0 +$* &!a; +$* -o foo >=a +EOO +testscript:2: error: registered for cleanup directory test/1/ is not empty +a +EOE -- cgit v1.1