Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/cmd/tw/find.tst
1808 views
# tests for the find utility

UMASK 0

function DATA
{
	typeset f i j k
	typeset -Z4 Z
	for f
	do	test -d $f && continue
		KEEP $f
		case $f in
		data)	mkdir data
			for i in aaa zzz
			do	i=data/$i
				mkdir $i
				for j in 111 222 333
				do	mkdir $i/$j
					for k in 4 5 6 7
					do	mkdir $i/$j/$k
						for l in q.c r.d s.z
						do	print $i $j $k $l > $i/$j/$k/$l
							chmod $k$k$k $i/$j/$k/$l
						done
					done
				done
			done
			;;
		empty)	mkdir -p empty
			;;
		match)	mkdir -p match/.ghi match/jkl
			: > match/.abc > match/def
			: > match/.ghi/.mno > match/.ghi/pqr
			: > match/jkl/.stu > match/jkl/vwx
			;;
		mode)	mkdir mode
			for i in 0 1 2 3 4 5 6 7
			do	: > mode/$i$i$i
				chmod $i$i$i mode/$i$i$i
			done
			;;
		not)	mkdir -p not/yet
			: > not/now
			: > not/yet/already
			;;
		size)	mkdir size
			for ((i = 0; i < 600; i += 11))
			do	Z=$i
				for ((j = 0; j < i; j++))
				do	print
				done > size/$Z
			done
			for ((i = 0; i < 6000; i += 321))
			do	Z=$i
				for ((j = 0; j < i; j++))
				do	print
				done > size/$Z
			done
			;;
		time)	mkdir time
			touch -t 'midnight' time/day-0
			touch -t 'midnight 1 day ago' time/day-1
			touch -t 'midnight 2 day ago' time/day-2
			touch -t 'midnight 3 day ago' time/day-3
			;;
		esac
	done
}

TEST 01 'basics'
	DO	DATA data
	EXEC	data -sort -name
		OUTPUT - $'data
data/aaa
data/aaa/111
data/aaa/111/4
data/aaa/111/4/q.c
data/aaa/111/4/r.d
data/aaa/111/4/s.z
data/aaa/111/5
data/aaa/111/5/q.c
data/aaa/111/5/r.d
data/aaa/111/5/s.z
data/aaa/111/6
data/aaa/111/6/q.c
data/aaa/111/6/r.d
data/aaa/111/6/s.z
data/aaa/111/7
data/aaa/111/7/q.c
data/aaa/111/7/r.d
data/aaa/111/7/s.z
data/aaa/222
data/aaa/222/4
data/aaa/222/4/q.c
data/aaa/222/4/r.d
data/aaa/222/4/s.z
data/aaa/222/5
data/aaa/222/5/q.c
data/aaa/222/5/r.d
data/aaa/222/5/s.z
data/aaa/222/6
data/aaa/222/6/q.c
data/aaa/222/6/r.d
data/aaa/222/6/s.z
data/aaa/222/7
data/aaa/222/7/q.c
data/aaa/222/7/r.d
data/aaa/222/7/s.z
data/aaa/333
data/aaa/333/4
data/aaa/333/4/q.c
data/aaa/333/4/r.d
data/aaa/333/4/s.z
data/aaa/333/5
data/aaa/333/5/q.c
data/aaa/333/5/r.d
data/aaa/333/5/s.z
data/aaa/333/6
data/aaa/333/6/q.c
data/aaa/333/6/r.d
data/aaa/333/6/s.z
data/aaa/333/7
data/aaa/333/7/q.c
data/aaa/333/7/r.d
data/aaa/333/7/s.z
data/zzz
data/zzz/111
data/zzz/111/4
data/zzz/111/4/q.c
data/zzz/111/4/r.d
data/zzz/111/4/s.z
data/zzz/111/5
data/zzz/111/5/q.c
data/zzz/111/5/r.d
data/zzz/111/5/s.z
data/zzz/111/6
data/zzz/111/6/q.c
data/zzz/111/6/r.d
data/zzz/111/6/s.z
data/zzz/111/7
data/zzz/111/7/q.c
data/zzz/111/7/r.d
data/zzz/111/7/s.z
data/zzz/222
data/zzz/222/4
data/zzz/222/4/q.c
data/zzz/222/4/r.d
data/zzz/222/4/s.z
data/zzz/222/5
data/zzz/222/5/q.c
data/zzz/222/5/r.d
data/zzz/222/5/s.z
data/zzz/222/6
data/zzz/222/6/q.c
data/zzz/222/6/r.d
data/zzz/222/6/s.z
data/zzz/222/7
data/zzz/222/7/q.c
data/zzz/222/7/r.d
data/zzz/222/7/s.z
data/zzz/333
data/zzz/333/4
data/zzz/333/4/q.c
data/zzz/333/4/r.d
data/zzz/333/4/s.z
data/zzz/333/5
data/zzz/333/5/q.c
data/zzz/333/5/r.d
data/zzz/333/5/s.z
data/zzz/333/6
data/zzz/333/6/q.c
data/zzz/333/6/r.d
data/zzz/333/6/s.z
data/zzz/333/7
data/zzz/333/7/q.c
data/zzz/333/7/r.d
data/zzz/333/7/s.z'
	EXEC	data -sort -name -print
	EXEC	data -sort -name --print
	EXEC	-sort -name -print data
	EXEC	--sort --name --print data
	EXEC	-H data -sort -name --print
	EXEC	--H data -sort -name --print
	EXEC	-metaphysical data -sort -name --print
	EXEC	--metaphysical data -sort -name --print
	EXEC	-L data -sort -name --print
	EXEC	--L data -sort -name --print
	EXEC	-logical data -sort -name --print
	EXEC	--logical data -sort -name --print
	EXEC	-P data -sort -name --print
	EXEC	--P data -sort -name --print
	EXEC	-physical data -sort -name --print
	EXEC	--physical data -sort -name --print
	EXEC	foo
		OUTPUT -
		ERROR - $'find: foo: not found'
		EXIT 1
	EXEC	foo bar
		ERROR - $'find: foo: not found\nfind: bar: not found'

TEST 02 'patterns'
	DO	DATA data
	EXEC	data -sort -name -name '*.c'
		OUTPUT - $'data/aaa/111/4/q.c
data/aaa/111/5/q.c
data/aaa/111/6/q.c
data/aaa/111/7/q.c
data/aaa/222/4/q.c
data/aaa/222/5/q.c
data/aaa/222/6/q.c
data/aaa/222/7/q.c
data/aaa/333/4/q.c
data/aaa/333/5/q.c
data/aaa/333/6/q.c
data/aaa/333/7/q.c
data/zzz/111/4/q.c
data/zzz/111/5/q.c
data/zzz/111/6/q.c
data/zzz/111/7/q.c
data/zzz/222/4/q.c
data/zzz/222/5/q.c
data/zzz/222/6/q.c
data/zzz/222/7/q.c
data/zzz/333/4/q.c
data/zzz/333/5/q.c
data/zzz/333/6/q.c
data/zzz/333/7/q.c'
	EXEC	data -sort -name -name '*.c' -print
	EXEC	data -sort -name -name '*.[cd]'
		OUTPUT - $'data/aaa/111/4/q.c
data/aaa/111/4/r.d
data/aaa/111/5/q.c
data/aaa/111/5/r.d
data/aaa/111/6/q.c
data/aaa/111/6/r.d
data/aaa/111/7/q.c
data/aaa/111/7/r.d
data/aaa/222/4/q.c
data/aaa/222/4/r.d
data/aaa/222/5/q.c
data/aaa/222/5/r.d
data/aaa/222/6/q.c
data/aaa/222/6/r.d
data/aaa/222/7/q.c
data/aaa/222/7/r.d
data/aaa/333/4/q.c
data/aaa/333/4/r.d
data/aaa/333/5/q.c
data/aaa/333/5/r.d
data/aaa/333/6/q.c
data/aaa/333/6/r.d
data/aaa/333/7/q.c
data/aaa/333/7/r.d
data/zzz/111/4/q.c
data/zzz/111/4/r.d
data/zzz/111/5/q.c
data/zzz/111/5/r.d
data/zzz/111/6/q.c
data/zzz/111/6/r.d
data/zzz/111/7/q.c
data/zzz/111/7/r.d
data/zzz/222/4/q.c
data/zzz/222/4/r.d
data/zzz/222/5/q.c
data/zzz/222/5/r.d
data/zzz/222/6/q.c
data/zzz/222/6/r.d
data/zzz/222/7/q.c
data/zzz/222/7/r.d
data/zzz/333/4/q.c
data/zzz/333/4/r.d
data/zzz/333/5/q.c
data/zzz/333/5/r.d
data/zzz/333/6/q.c
data/zzz/333/6/r.d
data/zzz/333/7/q.c
data/zzz/333/7/r.d'
	EXEC	data -sort -name \( -name '*.c' \|\| -name '*.d' \)
	EXEC	data -sort -name \( -name '*.c' -or -name '*.d' \)
	EXEC	data -sort -name \( -name '*.c' -or -name '*.d' \) -print
	EXEC	data -sort -name \( -name '*.c' -prune \) -or \( -name '*.d' -print \)
		OUTPUT - $'data/aaa/111/4/r.d
data/aaa/111/5/r.d
data/aaa/111/6/r.d
data/aaa/111/7/r.d
data/aaa/222/4/r.d
data/aaa/222/5/r.d
data/aaa/222/6/r.d
data/aaa/222/7/r.d
data/aaa/333/4/r.d
data/aaa/333/5/r.d
data/aaa/333/6/r.d
data/aaa/333/7/r.d
data/zzz/111/4/r.d
data/zzz/111/5/r.d
data/zzz/111/6/r.d
data/zzz/111/7/r.d
data/zzz/222/4/r.d
data/zzz/222/5/r.d
data/zzz/222/6/r.d
data/zzz/222/7/r.d
data/zzz/333/4/r.d
data/zzz/333/5/r.d
data/zzz/333/6/r.d
data/zzz/333/7/r.d'
	EXEC	data -sort -name \( -name 'zzz|*.c' -prune \) -or \( -name '*.d' -print \)
		OUTPUT - $'data/aaa/111/4/r.d
data/aaa/111/5/r.d
data/aaa/111/6/r.d
data/aaa/111/7/r.d
data/aaa/222/4/r.d
data/aaa/222/5/r.d
data/aaa/222/6/r.d
data/aaa/222/7/r.d
data/aaa/333/4/r.d
data/aaa/333/5/r.d
data/aaa/333/6/r.d
data/aaa/333/7/r.d'

TEST 03 'types'
	DO	DATA data
	EXEC	data -sort -name -type d
		OUTPUT - $'data
data/aaa
data/aaa/111
data/aaa/111/4
data/aaa/111/5
data/aaa/111/6
data/aaa/111/7
data/aaa/222
data/aaa/222/4
data/aaa/222/5
data/aaa/222/6
data/aaa/222/7
data/aaa/333
data/aaa/333/4
data/aaa/333/5
data/aaa/333/6
data/aaa/333/7
data/zzz
data/zzz/111
data/zzz/111/4
data/zzz/111/5
data/zzz/111/6
data/zzz/111/7
data/zzz/222
data/zzz/222/4
data/zzz/222/5
data/zzz/222/6
data/zzz/222/7
data/zzz/333
data/zzz/333/4
data/zzz/333/5
data/zzz/333/6
data/zzz/333/7'
	EXEC	data -sort -name -type f
		OUTPUT - $'data/aaa/111/4/q.c
data/aaa/111/4/r.d
data/aaa/111/4/s.z
data/aaa/111/5/q.c
data/aaa/111/5/r.d
data/aaa/111/5/s.z
data/aaa/111/6/q.c
data/aaa/111/6/r.d
data/aaa/111/6/s.z
data/aaa/111/7/q.c
data/aaa/111/7/r.d
data/aaa/111/7/s.z
data/aaa/222/4/q.c
data/aaa/222/4/r.d
data/aaa/222/4/s.z
data/aaa/222/5/q.c
data/aaa/222/5/r.d
data/aaa/222/5/s.z
data/aaa/222/6/q.c
data/aaa/222/6/r.d
data/aaa/222/6/s.z
data/aaa/222/7/q.c
data/aaa/222/7/r.d
data/aaa/222/7/s.z
data/aaa/333/4/q.c
data/aaa/333/4/r.d
data/aaa/333/4/s.z
data/aaa/333/5/q.c
data/aaa/333/5/r.d
data/aaa/333/5/s.z
data/aaa/333/6/q.c
data/aaa/333/6/r.d
data/aaa/333/6/s.z
data/aaa/333/7/q.c
data/aaa/333/7/r.d
data/aaa/333/7/s.z
data/zzz/111/4/q.c
data/zzz/111/4/r.d
data/zzz/111/4/s.z
data/zzz/111/5/q.c
data/zzz/111/5/r.d
data/zzz/111/5/s.z
data/zzz/111/6/q.c
data/zzz/111/6/r.d
data/zzz/111/6/s.z
data/zzz/111/7/q.c
data/zzz/111/7/r.d
data/zzz/111/7/s.z
data/zzz/222/4/q.c
data/zzz/222/4/r.d
data/zzz/222/4/s.z
data/zzz/222/5/q.c
data/zzz/222/5/r.d
data/zzz/222/5/s.z
data/zzz/222/6/q.c
data/zzz/222/6/r.d
data/zzz/222/6/s.z
data/zzz/222/7/q.c
data/zzz/222/7/r.d
data/zzz/222/7/s.z
data/zzz/333/4/q.c
data/zzz/333/4/r.d
data/zzz/333/4/s.z
data/zzz/333/5/q.c
data/zzz/333/5/r.d
data/zzz/333/5/s.z
data/zzz/333/6/q.c
data/zzz/333/6/r.d
data/zzz/333/6/s.z
data/zzz/333/7/q.c
data/zzz/333/7/r.d
data/zzz/333/7/s.z'

TEST 04 'modes'
	DO	DATA mode
	EXEC	mode -sort -name -perm -000
		OUTPUT - 'mode
mode/000
mode/111
mode/222
mode/333
mode/444
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm  000
		OUTPUT - 'mode/000'
	EXEC	mode -sort -name -perm +000
		OUTPUT -
	EXEC	mode -sort -name -perm -111
		OUTPUT - 'mode
mode/111
mode/333
mode/555
mode/777'
	EXEC	mode -sort -name -perm  111
		OUTPUT - 'mode/111'
	EXEC	mode -sort -name -perm +111
		OUTPUT - 'mode
mode/111
mode/333
mode/555
mode/777'
	EXEC	mode -sort -name -perm -200
		OUTPUT - 'mode
mode/222
mode/333
mode/666
mode/777'
	EXEC	mode -sort -name -perm  200
		OUTPUT -
	EXEC	mode -sort -name -perm +200
		OUTPUT - 'mode
mode/222
mode/333
mode/666
mode/777'
	EXEC	mode -sort -name -perm -220
	EXEC	mode -sort -name -perm  220
		OUTPUT -
	EXEC	mode -sort -name -perm +220
		OUTPUT - 'mode
mode/222
mode/333
mode/666
mode/777'
	EXEC	mode -sort -name -perm -222
	EXEC	mode -sort -name -perm  222
		OUTPUT - 'mode/222'
	EXEC	mode -sort -name -perm +222
		OUTPUT - 'mode
mode/222
mode/333
mode/666
mode/777'
	EXEC	mode -sort -name -perm -333
		OUTPUT - 'mode
mode/333
mode/777'
	EXEC	mode -sort -name -perm  333
		OUTPUT - 'mode/333'
	EXEC	mode -sort -name -perm +333
		OUTPUT - 'mode
mode/111
mode/222
mode/333
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm -444
		OUTPUT - 'mode
mode/444
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm  444
		OUTPUT - 'mode/444'
	EXEC	mode -sort -name -perm +444
		OUTPUT - 'mode
mode/444
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm -555
		OUTPUT - 'mode
mode/555
mode/777'
	EXEC	mode -sort -name -perm  555
		OUTPUT - 'mode/555'
	EXEC	mode -sort -name -perm +555
		OUTPUT - 'mode
mode/111
mode/333
mode/444
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm -666
		OUTPUT - 'mode
mode/666
mode/777'
	EXEC	mode -sort -name -perm  666
		OUTPUT - 'mode/666'
	EXEC	mode -sort -name -perm +666
		OUTPUT - 'mode
mode/222
mode/333
mode/444
mode/555
mode/666
mode/777'
	EXEC	mode -sort -name -perm -777
		OUTPUT - 'mode
mode/777'
	EXEC	mode -sort -name -perm  777
	EXEC	mode -sort -name -perm +777
		OUTPUT - 'mode
mode/111
mode/222
mode/333
mode/444
mode/555
mode/666
mode/777'

TEST 05 '-name pattern'
	DO	DATA match
	EXEC	match -sort -name
		OUTPUT - $'match
match/.abc
match/.ghi
match/.ghi/.mno
match/.ghi/pqr
match/def
match/jkl
match/jkl/.stu
match/jkl/vwx'
	EXEC	match -sort -name -name '*'
	EXEC	match -sort -name -name '.*'
		OUTPUT - $'match/.abc
match/.ghi
match/.ghi/.mno
match/jkl/.stu'

TEST 06 '-size number[bckw]'
	DO	DATA size
	EXEC	size -sort -name -type f
		OUTPUT - $'size/0000
size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -0
		OUTPUT -
	EXEC	size -sort -name -type f -a -size 0
		OUTPUT - $'size/0000'
	EXEC	size -sort -name -type f -a -size +0
		OUTPUT - $'size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -1c
		OUTPUT - $'size/0000'
	EXEC	size -sort -name -type f -a -size 1c
		OUTPUT -
	EXEC	size -sort -name -type f -a -size +1c
		OUTPUT - $'size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -176c
		OUTPUT - $'size/0000
size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165'
	EXEC	size -sort -name -type f -a -size 176c
		OUTPUT - $'size/0176'
	EXEC	size -sort -name -type f -a -size +176c
		OUTPUT - $'size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -1w
		OUTPUT - $'size/0000'
	EXEC	size -sort -name -type f -a -size 1w
		OUTPUT -
	EXEC	size -sort -name -type f -a -size +1w
		OUTPUT - $'size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -1b
		OUTPUT - $'size/0000'
	EXEC	size -sort -name -type f -a -size 1b
		OUTPUT - $'size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506'
	EXEC	size -sort -name -type f -a -size +1b
		OUTPUT - $'size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963
size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'
	EXEC	size -sort -name -type f -a -size -1k
		OUTPUT - $'size/0000'
	EXEC	size -sort -name -type f -a -size 1k
		OUTPUT - $'size/0011
size/0022
size/0033
size/0044
size/0055
size/0066
size/0077
size/0088
size/0099
size/0110
size/0121
size/0132
size/0143
size/0154
size/0165
size/0176
size/0187
size/0198
size/0209
size/0220
size/0231
size/0242
size/0253
size/0264
size/0275
size/0286
size/0297
size/0308
size/0319
size/0321
size/0330
size/0341
size/0352
size/0363
size/0374
size/0385
size/0396
size/0407
size/0418
size/0429
size/0440
size/0451
size/0462
size/0473
size/0484
size/0495
size/0506
size/0517
size/0528
size/0539
size/0550
size/0561
size/0572
size/0583
size/0594
size/0642
size/0963'
	EXEC	size -sort -name -type f -a -size +1k
		OUTPUT - $'size/1284
size/1605
size/1926
size/2247
size/2568
size/2889
size/3210
size/3531
size/3852
size/4173
size/4494
size/4815
size/5136
size/5457
size/5778'

TEST 07 '[ -exec -xargs ] X {} X [ ; + ]'
	DO	DATA empty mode
	EXEC	empty -exec echo \;
		OUTPUT - $'empty'
	EXEC	empty -exec echo {} \;
	EXEC	empty -exec echo {} {} \;
		OUTPUT - $'empty empty'
	EXEC	empty -exec echo {} {} {} \;
		OUTPUT - $'empty empty empty'
	EXEC	mode -sort -name -exec echo ';'
		OUTPUT - $'mode\nmode/000\nmode/111\nmode/222\nmode/333\nmode/444\nmode/555\nmode/666\nmode/777'
	EXEC	mode -sort -name -exec echo {} ';'
	EXEC	mode -sort -name -xargs echo ';'
		OUTPUT - $'mode mode/000 mode/111 mode/222 mode/333 mode/444 mode/555 mode/666 mode/777'
	EXEC	mode -sort -name -xargs echo {} ';'
	EXEC	mode -sort -name -xargs echo {} '+'
	EXEC	mode -sort -name -exec echo {} '+'
	EXEC	mode -sort -name -exec echo '+'
		OUTPUT -
		ERROR - $'find: incomplete statement'
		EXIT 1
	EXEC	mode -sort -name -xargs echo '+'

TEST 08 '-mtime [-+]N'
	DO	DATA time
	EXEC	time -type f -mtime 0
		OUTPUT - $'time/day-0'
	EXEC	time -type f -mtime 1
		OUTPUT - $'time/day-1'
	EXEC	time -type f -mtime 2
		OUTPUT - $'time/day-2'
	EXEC	time -type f -mtime 3
		OUTPUT - $'time/day-3'
	EXEC	time -type f -mtime 4
		OUTPUT -
	EXEC	time -sort name -type f -mtime -0
	EXEC	time -sort name -type f -mtime -1
		OUTPUT - $'time/day-0'
	EXEC	time -sort name -type f -mtime -2
		OUTPUT - $'time/day-0\ntime/day-1'
	EXEC	time -sort name -type f -mtime -3
		OUTPUT - $'time/day-0\ntime/day-1\ntime/day-2'
	EXEC	time -sort name -type f -mtime -4
		OUTPUT - $'time/day-0\ntime/day-1\ntime/day-2\ntime/day-3'
	EXEC	time -sort name -type f -mtime +0
		OUTPUT - $'time/day-1\ntime/day-2\ntime/day-3'
	EXEC	time -sort name -type f -mtime +1
		OUTPUT - $'time/day-2\ntime/day-3'
	EXEC	time -sort name -type f -mtime +2
		OUTPUT - $'time/day-3'
	EXEC	time -sort name -type f -mtime +3
		OUTPUT -
	EXEC	time -sort name -type f -mtime +4

TEST 09 '! implicit -print bug'
	DO	DATA not
	EXEC	not ! -type f
		OUTPUT - $'not\nnot/yet'
	EXEC	not ! -type f -print
	EXEC	not '(' ! -type f ')' -print