From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Derrick Stolee <dstolee@microsoft.com>,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 00/11] Improve testability with GIT_TEST_FSMONITOR
Date: Thu, 21 Nov 2019 22:20:15 +0000 [thread overview]
Message-ID: <pull.466.git.1574374826.gitgitgadget@gmail.com> (raw)
The GIT_TEST_FSMONITOR environment variable allows run-time specification of
the fsmonitor hook. Initially used by t7619-status-fsmonitor.sh, we can
enable it across the test suite to see how it affects Git's behavior. In
particular, we can specify the version of the hook that requests a result
from Watchman to get actual updates to the files in the repo.
In many cases, our tests are simply not ready to handle this option.
fsmonitor does not integrate well with features such as split index, bare
repos, or submodules. Other times, we need to disable it because the test is
being specific about what files Git inspects during a 'status' call.
The long-term vision is to be able to run CI builds using a file-system
watcher like Watchman to get better coverage on this feature. These patches
get us closer, but there are still some issues around overloading the
Watchman interface when the tests are run in parallel. When using "prove -j8
t[0-8]*.sh" I see some failures that do not reproduce when running the test
scripts in isolation (on Linux).
Thanks, -Stolee
Derrick Stolee (11):
fsmonitor: disable in a bare repo
fsmonitor: do not output to stderr for tests
t1301-shared-repo.sh: disable FSMONITOR
t1510-repo-setup.sh: disable fsmonitor if no .git dir
fsmonitor: disable fsmonitor with worktrees
t3030-merge-recursive.sh: disable fsmonitor when tweaking
GIT_WORK_TREE
t3600-rm.sh: disable fsmonitor when deleting populated submodule
tests: disable fsmonitor in submodule tests
t7063: disable fsmonitor with status cache
t7519: disable external GIT_TEST_FSMONITOR variable
test-lib: clear watchman watches at test completion
config.c | 5 +++++
t/t1301-shared-repo.sh | 1 +
t/t1510-repo-setup.sh | 1 +
t/t2400-worktree-add.sh | 2 ++
t/t3030-merge-recursive.sh | 2 ++
t/t3600-rm.sh | 1 +
t/t4060-diff-submodule-option-diff-format.sh | 3 +++
t/t5526-fetch-submodules.sh | 2 ++
t/t7063-status-untracked-cache.sh | 3 +++
t/t7402-submodule-rebase.sh | 3 +++
t/t7406-submodule-update.sh | 2 ++
t/t7506-status-submodule.sh | 3 +++
t/t7508-status.sh | 3 +++
t/t7519-status-fsmonitor.sh | 3 +++
t/t7519/fsmonitor-watchman | 1 -
t/test-lib-functions.sh | 15 +++++++++++++++
t/test-lib.sh | 2 ++
17 files changed, 51 insertions(+), 1 deletion(-)
base-commit: dd0b61f577f041f1119bb3288451f8f9b7f9e3f2
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-466%2Fderrickstolee%2Ftest-watchman-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-466/derrickstolee/test-watchman-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/466
--
gitgitgadget
next reply other threads:[~2019-11-21 22:20 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-21 22:20 Derrick Stolee via GitGitGadget [this message]
2019-11-21 22:20 ` [PATCH 01/11] fsmonitor: disable in a bare repo Derrick Stolee via GitGitGadget
2019-11-21 23:18 ` Denton Liu
2019-11-22 1:57 ` Derrick Stolee
2019-11-21 22:20 ` [PATCH 02/11] fsmonitor: do not output to stderr for tests Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 03/11] t1301-shared-repo.sh: disable FSMONITOR Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 04/11] t1510-repo-setup.sh: disable fsmonitor if no .git dir Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 05/11] fsmonitor: disable fsmonitor with worktrees Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 06/11] t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 07/11] t3600-rm.sh: disable fsmonitor when deleting populated submodule Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 08/11] tests: disable fsmonitor in submodule tests Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 09/11] t7063: disable fsmonitor with status cache Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 10/11] t7519: disable external GIT_TEST_FSMONITOR variable Derrick Stolee via GitGitGadget
2019-11-21 22:20 ` [PATCH 11/11] test-lib: clear watchman watches at test completion Derrick Stolee via GitGitGadget
2019-11-22 1:06 ` SZEDER Gábor
2019-12-09 14:12 ` Derrick Stolee
2019-12-09 23:40 ` SZEDER Gábor
2019-12-10 1:43 ` Derrick Stolee
2019-12-09 16:09 ` [PATCH v2 0/8] Improve testability with GIT_TEST_FSMONITOR Derrick Stolee via GitGitGadget
2019-12-09 16:09 ` [PATCH v2 1/8] fsmonitor: disable in a bare repo Derrick Stolee via GitGitGadget
2019-12-10 9:46 ` SZEDER Gábor
2019-12-09 16:09 ` [PATCH v2 2/8] fsmonitor: do not output to stderr for tests Derrick Stolee via GitGitGadget
2019-12-09 16:09 ` [PATCH v2 3/8] t1301-shared-repo.sh: disable FSMONITOR Derrick Stolee via GitGitGadget
2019-12-10 9:43 ` SZEDER Gábor
2019-12-09 16:10 ` [PATCH v2 4/8] t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE Derrick Stolee via GitGitGadget
2019-12-10 10:07 ` SZEDER Gábor
2019-12-10 13:45 ` Derrick Stolee
2019-12-10 14:57 ` SZEDER Gábor
2019-12-10 15:07 ` SZEDER Gábor
2020-01-23 15:45 ` Derrick Stolee
2019-12-09 16:10 ` [PATCH v2 5/8] tests: disable fsmonitor in submodule tests Derrick Stolee via GitGitGadget
2019-12-10 10:13 ` SZEDER Gábor
2019-12-10 13:57 ` Derrick Stolee
2019-12-09 16:10 ` [PATCH v2 6/8] t7063: disable fsmonitor with status cache Derrick Stolee via GitGitGadget
2019-12-09 16:10 ` [PATCH v2 7/8] t7519: disable external GIT_TEST_FSMONITOR variable Derrick Stolee via GitGitGadget
2019-12-09 16:10 ` [PATCH v2 8/8] test-lib: clear watchman watches at test completion Derrick Stolee via GitGitGadget
2019-12-09 22:52 ` Junio C Hamano
2019-12-10 1:49 ` Derrick Stolee
2019-12-10 5:20 ` Junio C Hamano
2019-12-10 13:51 ` Derrick Stolee
2019-12-10 14:09 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.466.git.1574374826.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.