Merge branch 'sg/tests-prereq'
A lazily defined test prerequisite can now be defined in terms of another lazily defined test prerequisite. * sg/tests-prereq: tests: fix description of 'test_set_prereq' tests: make sure nested lazy prereqs work reliablymaint
						commit
						7bd645e21d
					
				|  | @ -840,6 +840,27 @@ then | ||||||
| 	exit 1 | 	exit 1 | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | test_lazy_prereq NESTED_INNER ' | ||||||
|  | 	>inner && | ||||||
|  | 	rm -f outer | ||||||
|  | ' | ||||||
|  | test_lazy_prereq NESTED_PREREQ ' | ||||||
|  | 	>outer && | ||||||
|  | 	test_have_prereq NESTED_INNER && | ||||||
|  | 	echo "can create new file in cwd" >file && | ||||||
|  | 	test -f outer && | ||||||
|  | 	test ! -f inner | ||||||
|  | ' | ||||||
|  | test_expect_success NESTED_PREREQ 'evaluating nested lazy prereqs dont interfere with each other' ' | ||||||
|  | 	nestedworks=yes | ||||||
|  | ' | ||||||
|  |  | ||||||
|  | if test -z "$GIT_TEST_FAIL_PREREQS_INTERNAL" && test "$nestedworks" != yes | ||||||
|  | then | ||||||
|  | 	say 'bug in test framework: nested lazy prerequisites do not work' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
| test_expect_success 'lazy prereqs do not turn off tracing' " | test_expect_success 'lazy prereqs do not turn off tracing' " | ||||||
| 	run_sub_test_lib_test lazy-prereq-and-tracing \ | 	run_sub_test_lib_test lazy-prereq-and-tracing \ | ||||||
| 		'lazy prereqs and -x' -v -x <<-\\EOF && | 		'lazy prereqs and -x' -v -x <<-\\EOF && | ||||||
|  |  | ||||||
|  | @ -423,7 +423,7 @@ write_script () { | ||||||
| # - Explicitly using test_have_prereq. | # - Explicitly using test_have_prereq. | ||||||
| # | # | ||||||
| # - Implicitly by specifying the prerequisite tag in the calls to | # - Implicitly by specifying the prerequisite tag in the calls to | ||||||
| #   test_expect_{success,failure,code}. | #   test_expect_{success,failure} and test_external{,_without_stderr}. | ||||||
| # | # | ||||||
| # The single parameter is the prerequisite tag (a simple word, in all | # The single parameter is the prerequisite tag (a simple word, in all | ||||||
| # capital letters by convention). | # capital letters by convention). | ||||||
|  | @ -474,15 +474,15 @@ test_lazy_prereq () { | ||||||
|  |  | ||||||
| test_run_lazy_prereq_ () { | test_run_lazy_prereq_ () { | ||||||
| 	script=' | 	script=' | ||||||
| mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" && | mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-'"$1"'" && | ||||||
| ( | ( | ||||||
| 	cd "$TRASH_DIRECTORY/prereq-test-dir" &&'"$2"' | 	cd "$TRASH_DIRECTORY/prereq-test-dir-'"$1"'" &&'"$2"' | ||||||
| )' | )' | ||||||
| 	say >&3 "checking prerequisite: $1" | 	say >&3 "checking prerequisite: $1" | ||||||
| 	say >&3 "$script" | 	say >&3 "$script" | ||||||
| 	test_eval_ "$script" | 	test_eval_ "$script" | ||||||
| 	eval_ret=$? | 	eval_ret=$? | ||||||
| 	rm -rf "$TRASH_DIRECTORY/prereq-test-dir" | 	rm -rf "$TRASH_DIRECTORY/prereq-test-dir-$1" | ||||||
| 	if test "$eval_ret" = 0; then | 	if test "$eval_ret" = 0; then | ||||||
| 		say >&3 "prerequisite $1 ok" | 		say >&3 "prerequisite $1 ok" | ||||||
| 	else | 	else | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano