[clang-tools-extra] 8741a76 - [clangd] Ensure we test for compatibility of serialized index format

Kadir Cetinkaya via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 13 08:07:04 PST 2020


Author: Kadir Cetinkaya
Date: 2020-11-13T17:06:23+01:00
New Revision: 8741a76f5dd11ba65fadfd3182da4d365ac15352

URL: https://github.com/llvm/llvm-project/commit/8741a76f5dd11ba65fadfd3182da4d365ac15352
DIFF: https://github.com/llvm/llvm-project/commit/8741a76f5dd11ba65fadfd3182da4d365ac15352.diff

LOG: [clangd] Ensure we test for compatibility of serialized index format

Differential Revision: https://reviews.llvm.org/D91330

Added: 
    clang-tools-extra/clangd/test/index-serialization/Inputs/sample.cpp
    clang-tools-extra/clangd/test/index-serialization/Inputs/sample.h
    clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx
    clang-tools-extra/clangd/test/index-serialization/version-is-correct.test

Modified: 
    clang-tools-extra/clangd/test/lit.cfg.py
    clang-tools-extra/clangd/test/lit.site.cfg.py.in

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.cpp b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.cpp
new file mode 100644
index 000000000000..7fe4e80f0477
--- /dev/null
+++ b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.cpp
@@ -0,0 +1,5 @@
+// Include a file to ensure we have multiple sources.
+#include "sample.h"
+
+// This introduces a symbol, a reference and a relation.
+struct Bar : public Foo {};

diff  --git a/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.h b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.h
new file mode 100644
index 000000000000..7cf73b9c43ab
--- /dev/null
+++ b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.h
@@ -0,0 +1,4 @@
+#pragma once
+
+// Introduce a symbol.
+struct Foo {};

diff  --git a/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx
new file mode 100644
index 000000000000..5ecb294f3191
Binary files /dev/null and b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx 
diff er

diff  --git a/clang-tools-extra/clangd/test/index-serialization/version-is-correct.test b/clang-tools-extra/clangd/test/index-serialization/version-is-correct.test
new file mode 100644
index 000000000000..b4227d204ae2
--- /dev/null
+++ b/clang-tools-extra/clangd/test/index-serialization/version-is-correct.test
@@ -0,0 +1,14 @@
+# REQUIRES: zlib
+This test tries to parse a checked-in binary index.
+If this test fails it means there has been a backward incompatilbe change to
+serialization format.
+Please bump the version number in
+clang-tools-extra/clangd/index/Serialization.cpp and regenarate sample.idx with
+
+  clangd-indexer \
+    clang-tools-extra/clangd/test/index-serialization/Inputs/sample.cpp > \
+    clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx
+
+Also if you've introduced new slabs/chunks to serialized index, make sure
+indexing sample.cpp would yield non-trivial values for those.
+# RUN: dexp %/S/Inputs/sample.idx -c="find B" | grep Bar || not grep -v '^#' %s

diff  --git a/clang-tools-extra/clangd/test/lit.cfg.py b/clang-tools-extra/clangd/test/lit.cfg.py
index a8a38a7fafd3..2680eb441df9 100644
--- a/clang-tools-extra/clangd/test/lit.cfg.py
+++ b/clang-tools-extra/clangd/test/lit.cfg.py
@@ -30,3 +30,6 @@ def calculate_arch_features(arch_string):
 
 if config.clangd_enable_remote:
   config.available_features.add('clangd-remote-index')
+
+if config.have_zlib:
+  config.available_features.add('zlib')

diff  --git a/clang-tools-extra/clangd/test/lit.site.cfg.py.in b/clang-tools-extra/clangd/test/lit.site.cfg.py.in
index 750e5c500f6f..efcc770095b3 100644
--- a/clang-tools-extra/clangd/test/lit.site.cfg.py.in
+++ b/clang-tools-extra/clangd/test/lit.site.cfg.py.in
@@ -25,6 +25,7 @@ config.clangd_source_dir = "@CMAKE_CURRENT_SOURCE_DIR@/.."
 config.clangd_binary_dir = "@CMAKE_CURRENT_BINARY_DIR@/.."
 config.clangd_build_xpc = @CLANGD_BUILD_XPC@
 config.clangd_enable_remote = @CLANGD_ENABLE_REMOTE@
+config.have_zlib = @LLVM_ENABLE_ZLIB@
 
 # Delegate logic to lit.cfg.py.
 lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py")


        


More information about the cfe-commits mailing list