11setup (){
2- writedate () { date +%S% N > " $1 " ; }
2+ writedate () { date +%N > " $1 " ; }
33 export -f writedate
44}
55
66test_skipexist () { # @test
77 local output
88 o=$BATS_TEST_TMPDIR /d
99 run skip-exist " $o " writedate " $o "
10+ [[ ! $output =~ WARNING ]]
1011 test -s " $o "
1112 dt=$( cat " $o " )
1213 run skip-exist " $o " writedate " $o "
1314 [[ $output =~ SKIP ]]
1415 [[ $( cat " $o " ) == " $dt " ]]
1516}
1617
18+ test_skipexist_help () { # @test
19+ local output status
20+ o=$BATS_TEST_TMPDIR /d
21+ run skip-exist
22+ [ ! -r " $o " ]
23+ [ " $status " -eq 0 ]
24+ [[ " $output " =~ USAGE ]]
25+
26+ run skip-exist " $o "
27+ [ " $status " -gt 0 ]
28+ [ ! -r " $o " ]
29+ [[ " $output " =~ ERROR ]]
30+ }
31+
1732test_skipexist_redo () { # @test
1833 export REDO=1
1934 o=$BATS_TEST_TMPDIR /d
@@ -24,3 +39,35 @@ test_skipexist_redo() { # @test
2439 [[ " $output " =~ " overwrit" ]]
2540 [[ $( cat " $o " ) -gt " $dt " ]]
2641}
42+
43+ test_skipexist_nodata () { # @test
44+ o=$BATS_TEST_TMPDIR /d
45+ run skip-exist " $o " :
46+ ! test -s " $o "
47+ [[ $output =~ WARN ]]
48+
49+ # CHECK HERE:
50+ # maybe we *do* want to warn even if command fails?
51+ badfunc () { return 1; }
52+ export -f badfunc
53+ run skip-exist " $o " badfunc
54+ [[ ! $output =~ WARN ]]
55+ }
56+
57+ test_skipexist_space () { # @test
58+ o=$BATS_TEST_TMPDIR /" a b"
59+ run skip-exist " $o " writedate " $o "
60+ test -s " $o "
61+ dt=$( cat " $o " )
62+ run skip-exist " $o " writedate " $o "
63+ [[ $( cat " $o " ) == " $dt " ]]
64+ }
65+
66+ test_skipexist_SKIPFILE () { # @test
67+ o=$BATS_TEST_TMPDIR /" a b"
68+ run skip-exist " $o " writedate _SKIPFILE
69+ test -s " $o "
70+ dt=$( cat " $o " )
71+ run skip-exist " $o " writedate " $o "
72+ [[ $( cat " $o " ) == " $dt " ]]
73+ }
0 commit comments