git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 1/3] t: consolidate the `is_hidden` functions

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Apr 10, 2020, 11:03 UTC
Message-ID
<dd81ea68d6b74c3031565a472d622d8db1f896bd.1586516583.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.603.v2.git.1586516583.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>

The `is_hidden` function can be used (only on Windows) to determine whether a directory or file have their `hidden` flag set.

This function is duplicated between two test scripts. It is better to move it into `test-lib-functions.sh` so that it is reused.

To make it safer to use, we specifically test for the `MINGW` prereq now, so that it is not used on a non-Windows platform by mistake.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 t/t0001-init.sh         |  9 +--------
 t/t5611-clone-config.sh | 13 +++----------
 t/test-lib-functions.sh | 10 ++++++++++
 3 files changed, 14 insertions(+), 18 deletions(-)
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 26f82063267..1edd5aeb8f0 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -392,13 +392,6 @@ test_expect_success SYMLINKS 're-init to move gitdir symlink' '
 	test_path_is_dir realgitdir/refs
 '
 
-# Tests for the hidden file attribute on windows
-is_hidden () {
-	# Use the output of `attrib`, ignore the absolute path
-	case "$(attrib "$1")" in *H*?:*) return 0;; esac
-	return 1
-}
-
 test_expect_success MINGW '.git hidden' '
 	rm -rf newdir &&
 	(
@@ -406,7 +399,7 @@ test_expect_success MINGW '.git hidden' '
 		mkdir newdir &&
 		cd newdir &&
 		git init &&
-		is_hidden .git
+		test_path_is_hidden .git
 	) &&
 	check_config newdir/.git false unset
 '
diff --git a/t/t5611-clone-config.sh b/t/t5611-clone-config.sh
index 60c1ba951b7..8e0fd398236 100755
--- a/t/t5611-clone-config.sh
+++ b/t/t5611-clone-config.sh
@@ -92,24 +92,17 @@ test_expect_success 'clone -c remote.<remote>.fetch=<refspec> --origin=<name>' '
 	test_cmp expect actual
 '
 
-# Tests for the hidden file attribute on windows
-is_hidden () {
-	# Use the output of `attrib`, ignore the absolute path
-	case "$(attrib "$1")" in *H*?:*) return 0;; esac
-	return 1
-}
-
 test_expect_success MINGW 'clone -c core.hideDotFiles' '
 	test_commit attributes .gitattributes "" &&
 	rm -rf child &&
 	git clone -c core.hideDotFiles=false . child &&
-	! is_hidden child/.gitattributes &&
+	! test_path_is_hidden child/.gitattributes &&
 	rm -rf child &&
 	git clone -c core.hideDotFiles=dotGitOnly . child &&
-	! is_hidden child/.gitattributes &&
+	! test_path_is_hidden child/.gitattributes &&
 	rm -rf child &&
 	git clone -c core.hideDotFiles=true . child &&
-	is_hidden child/.gitattributes
+	test_path_is_hidden child/.gitattributes
 '
 
 test_done
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 352c213d52e..09a2479fd38 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -1543,3 +1543,13 @@ test_bitmap_traversal () {
 	test_cmp "$1.normalized" "$2.normalized" &&
 	rm -f "$1.normalized" "$2.normalized"
 }
+
+# Tests for the hidden file attribute on windows
+test_path_is_hidden () {
+	test_have_prereq MINGW ||
+	BUG "test_path_is_hidden can only be used on Windows"
+
+	# Use the output of `attrib`, ignore the absolute path
+	case "$(attrib "$1")" in *H*?:*) return 0;; esac
+	return 1
+}
-- 
gitgitgadget
Previous: Johannes Schindelin via GitGitGadgetNext: Junio C Hamano
Message 9 of 15 in “mingw: make is_hidden tests in t0001/t5611 more robust”
  1. mingw: make is_hidden tests in t0001/t5611 more robustJohannes Schindelin via GitGitGadget, Apr 8, 2020
  2. Junio C HamanoApr 8, 2020
  3. 0/2 make "is_hidden" even more robustJunio C Hamano, Apr 9, 2020
  4. 1/2 mingw: refactor test_path_is_hidden out to t/test-lib-functions.shJunio C Hamano, Apr 9, 2020
  5. 2/2 t: protect against use of test_path_is_hidden outside MINGWJunio C Hamano, Apr 9, 2020
  6. 0/3 Make the tests that test core.hideDotFiles more robustJohannes Schindelin via GitGitGadget, Apr 10, 2020
  7. 2/3 mingw: make test_path_is_hidden tests in t0001/t5611 more robustJohannes Schindelin via GitGitGadget, Apr 10, 2020
  8. 3/3 t: fix casing of the operating system `Windows`Johannes Schindelin via GitGitGadget, Apr 10, 2020
  9. 1/3 t: consolidate the `is_hidden` functionsJohannes Schindelin via GitGitGadget, Apr 10, 2020
  10. Junio C HamanoApr 10, 2020
  11. 0/3 Make the tests that test core.hideDotFiles more robustJohannes Schindelin via GitGitGadget, Apr 11, 2020
  12. 2/3 mingw: make test_path_is_hidden more robustJohannes Schindelin via GitGitGadget, Apr 11, 2020
  13. 3/3 t: restrict `is_hidden` to be called only on WindowsJohannes Schindelin via GitGitGadget, Apr 11, 2020
  14. 1/3 t: consolidate the `is_hidden` functionsJohannes Schindelin via GitGitGadget, Apr 11, 2020
  15. Junio C HamanoApr 11, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.