@@ -24,7 +24,8 @@ test_description="Test core.fsmonitor"
24
24
# GIT_PERF_7519_SPLIT_INDEX: used to configure core.splitIndex
25
25
# GIT_PERF_7519_FSMONITOR: used to configure core.fsMonitor. May be an
26
26
# absolute path to an integration. May be a space delimited list of
27
- # absolute paths to integrations.
27
+ # absolute paths to integrations. (This hook or list of hooks does not
28
+ # include the built-in fsmonitor--daemon.)
28
29
#
29
30
# The big win for using fsmonitor is the elimination of the need to scan the
30
31
# working directory looking for changed and untracked files. If the file
@@ -135,10 +136,16 @@ test_expect_success "one time repo setup" '
135
136
136
137
setup_for_fsmonitor () {
137
138
# set INTEGRATION_SCRIPT depending on the environment
138
- if test -n " $INTEGRATION_PATH "
139
+ if test -n " $USE_FSMONITOR_DAEMON "
139
140
then
141
+ git config core.useBuiltinFSMonitor true &&
142
+ INTEGRATION_SCRIPT=false
143
+ elif test -n " $INTEGRATION_PATH "
144
+ then
145
+ git config core.useBuiltinFSMonitor false &&
140
146
INTEGRATION_SCRIPT=" $INTEGRATION_PATH "
141
147
else
148
+ git config core.useBuiltinFSMonitor false &&
142
149
#
143
150
# Choose integration script based on existence of Watchman.
144
151
# Fall back to an empty integration script.
@@ -285,4 +292,30 @@ test_expect_success "setup without fsmonitor" '
285
292
test_fsmonitor_suite
286
293
trace_stop
287
294
295
+ #
296
+ # Run a full set of perf tests using the built-in fsmonitor--daemon.
297
+ # It does not use the Hook API, so it has a different setup.
298
+ # Explicitly start the daemon here and before we start client commands
299
+ # so that we can later add custom tracing.
300
+ #
301
+
302
+ test_lazy_prereq HAVE_FSMONITOR_DAEMON '
303
+ git version --build-options | grep "feature:" | grep "fsmonitor--daemon"
304
+ '
305
+
306
+ if test_have_prereq HAVE_FSMONITOR_DAEMON
307
+ then
308
+ USE_FSMONITOR_DAEMON=t
309
+
310
+ trace_start fsmonitor--daemon--server
311
+ git fsmonitor--daemon --start
312
+
313
+ trace_start fsmonitor--daemon--client
314
+ test_expect_success " setup for fsmonitor--daemon" ' setup_for_fsmonitor'
315
+ test_fsmonitor_suite
316
+
317
+ git fsmonitor--daemon --stop
318
+ trace_stop
319
+ fi
320
+
288
321
test_done
0 commit comments