Browse Source

t/perf/p7519: add fsmonitor--daemon test cases

Repeat all of the fsmonitor perf tests using `git fsmonitor--daemon` and
the "Simple IPC" interface.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff Hostetler 3 years ago committed by Junio C Hamano
parent
commit
ad2b54e3e8
  1. 38
      t/perf/p7519-fsmonitor.sh

38
t/perf/p7519-fsmonitor.sh

@ -141,7 +141,7 @@ test_expect_success "one time repo setup" ' @@ -141,7 +141,7 @@ test_expect_success "one time repo setup" '
fi
'

setup_for_fsmonitor () {
setup_for_fsmonitor_hook () {
# set INTEGRATION_SCRIPT depending on the environment
if test -n "$INTEGRATION_PATH"
then
@ -182,7 +182,11 @@ test_perf_w_drop_caches () { @@ -182,7 +182,11 @@ test_perf_w_drop_caches () {
}

test_fsmonitor_suite () {
if test -n "$INTEGRATION_SCRIPT"; then
if test -n "$USE_FSMONITOR_DAEMON"
then
DESC="builtin fsmonitor--daemon"
elif test -n "$INTEGRATION_SCRIPT"
then
DESC="fsmonitor=$(basename $INTEGRATION_SCRIPT)"
else
DESC="fsmonitor=disabled"
@ -261,11 +265,11 @@ test_fsmonitor_suite () { @@ -261,11 +265,11 @@ test_fsmonitor_suite () {
trace_start fsmonitor-watchman
if test -n "$GIT_PERF_7519_FSMONITOR"; then
for INTEGRATION_PATH in $GIT_PERF_7519_FSMONITOR; do
test_expect_success "setup for fsmonitor $INTEGRATION_PATH" 'setup_for_fsmonitor'
test_expect_success "setup for fsmonitor $INTEGRATION_PATH" 'setup_for_fsmonitor_hook'
test_fsmonitor_suite
done
else
test_expect_success "setup for fsmonitor" 'setup_for_fsmonitor'
test_expect_success "setup for fsmonitor hook" 'setup_for_fsmonitor_hook'
test_fsmonitor_suite
fi

@ -293,4 +297,30 @@ test_expect_success "setup without fsmonitor" ' @@ -293,4 +297,30 @@ test_expect_success "setup without fsmonitor" '
test_fsmonitor_suite
trace_stop

#
# Run a full set of perf tests using the built-in fsmonitor--daemon.
# It does not use the Hook API, so it has a different setup.
# Explicitly start the daemon here and before we start client commands
# so that we can later add custom tracing.
#
if test_have_prereq FSMONITOR_DAEMON
then
USE_FSMONITOR_DAEMON=t

test_expect_success "setup for builtin fsmonitor" '
trace_start fsmonitor--daemon--server &&
git fsmonitor--daemon start &&

trace_start fsmonitor--daemon--client &&

git config core.fsmonitor true &&
git update-index --fsmonitor
'

test_fsmonitor_suite

git fsmonitor--daemon stop
trace_stop
fi

test_done

Loading…
Cancel
Save