]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-tool: don't force full index
authorDerrick Stolee <dstolee@microsoft.com>
Tue, 30 Mar 2021 13:10:51 +0000 (13:10 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Mar 2021 19:57:46 +0000 (12:57 -0700)
We will use 'test-tool read-cache --table' to check that a sparse
index is written as part of init_repos. Since we will no longer always
expand a sparse index into a full index, add an '--expand' parameter
that adds a call to ensure_full_index() so we can compare a sparse index
directly against a full index, or at least what the in-memory index
looks like when expanded in this way.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/helper/test-read-cache.c
t/t1092-sparse-checkout-compatibility.sh

index 6cfd8f2de71cb2473940b0b791a4116526182251..b52c174acc7a1f1c8e4c9a3d5a888323c9db0fad 100644 (file)
@@ -4,6 +4,7 @@
 #include "blob.h"
 #include "commit.h"
 #include "tree.h"
+#include "sparse-index.h"
 
 static void print_cache_entry(struct cache_entry *ce)
 {
@@ -35,13 +36,19 @@ int cmd__read_cache(int argc, const char **argv)
        struct repository *r = the_repository;
        int i, cnt = 1;
        const char *name = NULL;
-       int table = 0;
+       int table = 0, expand = 0;
+
+       initialize_the_repository();
+       prepare_repo_settings(r);
+       r->settings.command_requires_full_index = 0;
 
        for (++argv, --argc; *argv && starts_with(*argv, "--"); ++argv, --argc) {
                if (skip_prefix(*argv, "--print-and-refresh=", &name))
                        continue;
                if (!strcmp(*argv, "--table"))
                        table = 1;
+               else if (!strcmp(*argv, "--expand"))
+                       expand = 1;
        }
 
        if (argc == 1)
@@ -51,6 +58,10 @@ int cmd__read_cache(int argc, const char **argv)
 
        for (i = 0; i < cnt; i++) {
                repo_read_index(r);
+
+               if (expand)
+                       ensure_full_index(r->index);
+
                if (name) {
                        int pos;
 
index de5d8461c993cc913ae8e23cb48da9c3e0ea15ec..a1aea141c62cc7f323e44790d6e6100b12115e9c 100755 (executable)
@@ -130,6 +130,11 @@ test_sparse_match () {
        test_cmp sparse-checkout-err sparse-index-err
 }
 
+test_expect_success 'expanded in-memory index matches full index' '
+       init_repos &&
+       test_sparse_match test-tool read-cache --expand --table
+'
+
 test_expect_success 'status with options' '
        init_repos &&
        test_all_match git status --porcelain=v2 &&