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

[PATCH v2 1/5] t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directories

From
Taylor Blau <me@ttaylorr.com>
Date
Jul 24, 2023, 16:39 UTC
Message-ID
<c81a059c1815a00fc0f5c7576814a830479483af.1690216758.git.me@ttaylorr.com>
In-Reply-To
<cover.1690216758.git.me@ttaylorr.com>

The `graph_read_expect()` function is used to ensure that the output of the "read-graph" test helper matches certain parameters (e.g., how many commits are in the graph, which chunks were written, etc.).

It expects the Git repository being tested to be at the current working directory. However, a handful of t5318 tests use different repositories stored in sub-directories. To work around this, several tests in t5318 change into the relevant repository outside of a sub-shell, altering the context for the rest of the suite.

Prepare to remove these globally-scoped directory changes by teaching `graph_read_expect()` to take an optional "-C dir" to specify where the repository containing the commit-graph being tested is.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
 t/lib-commit-graph.sh | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/t/lib-commit-graph.sh b/t/lib-commit-graph.sh
index 5d79e1a4e96..4d3e7f0623e 100755
--- a/t/lib-commit-graph.sh
+++ b/t/lib-commit-graph.sh
@@ -32,6 +32,13 @@ graph_git_behavior() {
 graph_read_expect() {
 	OPTIONAL=""
 	NUM_CHUNKS=3
+	DIR="."
+	if test "$1" = -C
+	then
+		shift
+		DIR="$1"
+		shift
+	fi
 	if test -n "$2"
 	then
 		OPTIONAL=" $2"
@@ -47,12 +54,15 @@ graph_read_expect() {
 	then
 		OPTIONS=" read_generation_data"
 	fi
-	cat >expect <<- EOF
+	cat >"$DIR/expect" <<-EOF
 	header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
 	num_commits: $1
 	chunks: oid_fanout oid_lookup commit_metadata$OPTIONAL
 	options:$OPTIONS
 	EOF
-	test-tool read-graph >output &&
-	test_cmp expect output
+	(
+		cd "$DIR" &&
+		test-tool read-graph >output &&
+		test_cmp expect output
+	)
 }
-- 
2.41.0.399.g887006eab46
Previous: Taylor BlauNext: Taylor Blau
Message 17 of 22 in “commit-graph: test cleanup and modernization”
  1. 0/5 commit-graph: test cleanup and modernizationTaylor Blau, Jul 21, 2023
  2. 1/5 t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directoriesTaylor Blau, Jul 21, 2023
  3. Eric SunshineJul 21, 2023
  4. Taylor BlauJul 21, 2023
  5. Junio C HamanoJul 21, 2023
  6. 4/5 t5328: avoid top-level directory changesTaylor Blau, Jul 21, 2023
  7. 3/5 t5318: avoid top-level directory changesTaylor Blau, Jul 21, 2023
  8. Eric SunshineJul 21, 2023
  9. 2/5 t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()`Taylor Blau, Jul 21, 2023
  10. Eric SunshineJul 21, 2023
  11. Taylor BlauJul 21, 2023
  12. Junio C HamanoJul 21, 2023
  13. 5/5 t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()`Taylor Blau, Jul 21, 2023
  14. Eric SunshineJul 21, 2023
  15. Junio C HamanoJul 21, 2023
  16. 0/5 commit-graph: test cleanup and modernizationTaylor Blau, Jul 24, 2023
  17. 1/5 t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directoriesTaylor Blau, Jul 24, 2023
  18. 2/5 t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()`Taylor Blau, Jul 24, 2023
  19. 3/5 t5318: avoid top-level directory changesTaylor Blau, Jul 24, 2023
  20. Junio C HamanoJul 24, 2023
  21. 5/5 t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()`Taylor Blau, Jul 24, 2023
  22. 4/5 t5328: avoid top-level directory changesTaylor Blau, Jul 24, 2023

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.