"Garima Singh via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Garima Singh <garima.singh@xxxxxxxxxxxxx> > > Add GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS test flag to the test setup suite > in order to toggle writing Bloom filters when running any of the git tests. > If set to true, we will compute and write Bloom filters every time a test > calls `git commit-graph write`, as if the `--changed-paths` option was > passed in. > > The test suite passes when GIT_TEST_COMMIT_GRAPH and > GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS are enabled. All right. Nice. > > Helped-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > Signed-off-by: Garima Singh <garima.singh@xxxxxxxxxxxxx> > --- > builtin/commit-graph.c | 3 ++- > ci/run-build-and-tests.sh | 1 + > commit-graph.h | 1 + > t/README | 5 +++++ > t/t4216-log-bloom.sh | 3 +++ > t/t5318-commit-graph.sh | 2 ++ > t/t5324-split-commit-graph.sh | 1 + > 7 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c > index 261dcce091..fc9b234ab0 100644 > --- a/builtin/commit-graph.c > +++ b/builtin/commit-graph.c > @@ -146,7 +146,8 @@ static int graph_write(int argc, const char **argv) > flags |= COMMIT_GRAPH_WRITE_SPLIT; > if (opts.progress) > flags |= COMMIT_GRAPH_WRITE_PROGRESS; > - if (opts.enable_changed_paths) > + if (opts.enable_changed_paths || > + git_env_bool(GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS, 0)) > flags |= COMMIT_GRAPH_WRITE_BLOOM_FILTERS; > Looks good to me. > read_replace_refs = 0; > diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh > index ff0ef7f08e..7b4857651d 100755 > --- a/ci/run-build-and-tests.sh > +++ b/ci/run-build-and-tests.sh > @@ -19,6 +19,7 @@ linux-gcc) > export GIT_TEST_OE_SIZE=10 > export GIT_TEST_OE_DELTA_SIZE=5 > export GIT_TEST_COMMIT_GRAPH=1 > + export GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1 > export GIT_TEST_MULTI_PACK_INDEX=1 > make test > ;; OK, include in continuous integration. > diff --git a/commit-graph.h b/commit-graph.h > index 25fefefb3e..4c202ff3d7 100644 > --- a/commit-graph.h > +++ b/commit-graph.h > @@ -8,6 +8,7 @@ > > #define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH" > #define GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD "GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD" > +#define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS" > Looks good to me. > struct commit; > struct bloom_filter_settings; > diff --git a/t/README b/t/README > index caa125ba9a..be2f7d7fd2 100644 > --- a/t/README > +++ b/t/README > @@ -378,6 +378,11 @@ GIT_TEST_COMMIT_GRAPH=<boolean>, when true, forces the commit-graph to > be written after every 'git commit' command, and overrides the > 'core.commitGraph' setting to true. > > +GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=<boolean>, when true, forces > +commit-graph write to compute and write changed path Bloom filters for > +every 'git commit-graph write', as if the `--changed-paths` option was > +passed in. > + Good, it is documented in README for tests. > GIT_TEST_FSMONITOR=$PWD/t7519/fsmonitor-all exercises the fsmonitor > code path for utilizing a file system monitor to speed up detecting > new or changed files. > diff --git a/t/t4216-log-bloom.sh b/t/t4216-log-bloom.sh > index 19eca1864b..7acebb3962 100755 > --- a/t/t4216-log-bloom.sh > +++ b/t/t4216-log-bloom.sh > @@ -3,6 +3,9 @@ > test_description='git log for a path with bloom filters' > . ./test-lib.sh > > +GIT_TEST_COMMIT_GRAPH=0 > +GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0 > + All right, we need to ensure that 'git commit-graph write' is not run automatically, otherwise split / incremental commit-graph tests would not work. We also need to ensure that '--changed-paths' is not added automatically, so that we can test that commit-graph does not include Bloom filters chunks if not requested. > test_expect_success 'setup test - repo, commits, commit graph, log outputs' ' > git init && > mkdir A A/B A/B/C && > diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh > index 3f03de6018..973020be2d 100755 > --- a/t/t5318-commit-graph.sh > +++ b/t/t5318-commit-graph.sh > @@ -3,6 +3,8 @@ > test_description='commit graph' > . ./test-lib.sh > > +GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0 > + OK, otherwise it would screw up checking the content of commit-graph with 'test-tool read-graph'. > test_expect_success 'setup full repo' ' > mkdir full && > cd "$TRASH_DIRECTORY/full" && > diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh > index c24823431f..9235db4561 100755 > --- a/t/t5324-split-commit-graph.sh > +++ b/t/t5324-split-commit-graph.sh > @@ -4,6 +4,7 @@ test_description='split commit graph' > . ./test-lib.sh > > GIT_TEST_COMMIT_GRAPH=0 > +GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0 > > test_expect_success 'setup repo' ' > git init && Same here. Looks good to me. -- Jakub Narębski