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

[PATCH] p7519: allow running without watchman prereq

From
Taylor Blau <me@ttaylorr.com>
Date
Jan 4, 2021, 21:35 UTC
Message-ID
<46b2e5af59c451b816973ba3f2c32a68639298b3.1609796006.git.me@ttaylorr.com>

p7519 measures the performance of the fsmonitor code. To do this, it uses the installed copy of Watchman. If Watchman isn't installed, a noop integration script is installed in its place.

When in the latter mode, it is expected that the script should not write a "last update token": in fact, it doesn't write anything at all since the script is blank.

Commit 33226af42b (t/perf/fsmonitor: improve error message if typoing hook name, 2020-10-26) made sure that running 'git update-index --fsmonitor' did not write anything to stderr, but this is not the case when using the empty Watchman script, since Git will complain that:

    $ which watchman
    watchman not found
    $ cat .git/hooks/fsmonitor-empty
    $ git -c core.fsmonitor=.git/hooks/fsmonitor-empty update-index --fsmonitor
    warning: Empty last update token.

Prior to 33226af42b, the output wasn't checked at all, which allowed this noop mode to work. But, 33226af42b breaks p7519 when running it without a 'watchman(1)' on your system.

Handle this by only checking that the stderr is empty only when running with a real watchman executable. Otherwise, assert that the error message is the expected one when running in the noop mode.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
Noticed while running the perf tests on v2.30.0 on a system that happens
to not have Watchman installed.

I could do without the 'else' block here, but it seems straightforward enough. Likewise, the "ensure no silent error" comment could certainly be removed (since 'test_must_be_empty error' makes what is happening quite clear), but the fix pursued here is minimal.

 t/perf/p7519-fsmonitor.sh | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/t/perf/p7519-fsmonitor.sh b/t/perf/p7519-fsmonitor.sh
index 9b43342806..1e20a184c7 100755
--- a/t/perf/p7519-fsmonitor.sh
+++ b/t/perf/p7519-fsmonitor.sh
@@ -129,7 +129,12 @@ setup_for_fsmonitor() {

 	git config core.fsmonitor "$INTEGRATION_SCRIPT" &&
 	git update-index --fsmonitor 2>error &&
-	test_must_be_empty error  # ensure no silent error
+	if test_have_prereq WATCHMAN
+	then
+		test_must_be_empty error  # ensure no silent error
+	else
+		grep "Empty last update token" error
+	fi
 }

 test_perf_w_drop_caches () {
--
2.29.2.533.g07db1f5344
Next: Nipunn Koorapati
Message 1 of 2 in “p7519: allow running without watchman prereq”
  1. p7519: allow running without watchman prereqTaylor Blau, Jan 4, 2021
  2. Nipunn KoorapatiJan 4, 2021

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.