git/t/t0070-fundamental.sh
Junio C Hamano 037714252f tests: clean after SANITY tests
Some of our tests try to make sure Git behaves sensibly in a
read-only directory, by dropping 'w' permission bit before doing a
test and then restoring it after it is done.  The latter is needed
for the test framework to clean after itself without leaving a
leftover directory that cannot be removed.

Ancient parts of tests however arrange the above with

	chmod a-w . &&
	... do the test ...
	status=$?
	chmod 775 .
	(exit $status)

which obviously would not work if the test somehow dies before it
has the chance to do "chmod 775".  Rewrite them by following a more
robust pattern recently written tests use, which is

	test_when_finished "chmod 775 ." &&
	chmod a-w . &&
	... do the test ...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-06-15 11:20:08 -07:00

37 lines
922 B
Bash
Executable file

#!/bin/sh
test_description='check that the most basic functions work
Verify wrappers and compatibility functions.
'
. ./test-lib.sh
test_expect_success 'character classes (isspace, isalpha etc.)' '
test-ctype
'
test_expect_success 'mktemp to nonexistent directory prints filename' '
test_must_fail test-mktemp doesnotexist/testXXXXXX 2>err &&
grep "doesnotexist/test" err
'
test_expect_success POSIXPERM,SANITY 'mktemp to unwritable directory prints filename' '
mkdir cannotwrite &&
test_when_finished "chmod +w cannotwrite" &&
chmod -w cannotwrite &&
test_must_fail test-mktemp cannotwrite/testXXXXXX 2>err &&
grep "cannotwrite/test" err
'
test_expect_success 'git_mkstemps_mode does not fail if fd 0 is not open' '
git commit --allow-empty -m message <&-
'
test_expect_success 'check for a bug in the regex routines' '
# if this test fails, re-build git with NO_REGEX=1
test-regex --bug
'
test_done