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") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits