about summary refs log tree commit diff
path: root/third_party/git/t/t1350-config-hooks-path.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/t1350-config-hooks-path.sh')
-rwxr-xr-xthird_party/git/t/t1350-config-hooks-path.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/third_party/git/t/t1350-config-hooks-path.sh b/third_party/git/t/t1350-config-hooks-path.sh
new file mode 100755
index 000000000000..f1f9aee9f5dc
--- /dev/null
+++ b/third_party/git/t/t1350-config-hooks-path.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+test_description='Test the core.hooksPath configuration variable'
+
+. ./test-lib.sh
+
+test_expect_success 'set up a pre-commit hook in core.hooksPath' '
+	mkdir -p .git/custom-hooks .git/hooks &&
+	write_script .git/custom-hooks/pre-commit <<-\EOF &&
+	echo CUSTOM >>actual
+	EOF
+	write_script .git/hooks/pre-commit <<-\EOF
+	echo NORMAL >>actual
+	EOF
+'
+
+test_expect_success 'Check that various forms of specifying core.hooksPath work' '
+	test_commit no_custom_hook &&
+	git config core.hooksPath .git/custom-hooks &&
+	test_commit have_custom_hook &&
+	git config core.hooksPath .git/custom-hooks/ &&
+	test_commit have_custom_hook_trailing_slash &&
+	git config core.hooksPath "$PWD/.git/custom-hooks" &&
+	test_commit have_custom_hook_abs_path &&
+	git config core.hooksPath "$PWD/.git/custom-hooks/" &&
+	test_commit have_custom_hook_abs_path_trailing_slash &&
+	cat >expect <<-\EOF &&
+	NORMAL
+	CUSTOM
+	CUSTOM
+	CUSTOM
+	CUSTOM
+	EOF
+	test_cmp expect actual
+'
+
+test_expect_success 'git rev-parse --git-path hooks' '
+	git config core.hooksPath .git/custom-hooks &&
+	git rev-parse --git-path hooks/abc >actual &&
+	test .git/custom-hooks/abc = "$(cat actual)"
+'
+
+test_done