aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Schmidt <git.julian.schmidt@gmail.com>2024-06-01 17:38:37 +0200
committerJulian Schmidt <git.julian.schmidt@gmail.com>2024-06-03 18:35:48 +0200
commit1c6f2a0a2780d3189e1cfe2a0f4ac9c3a33fcf8d (patch)
tree058f46b2b83cd3bca45c84888c7d57bf268b8a27
parentb301a98b33d75813d73838c1bd4c47024d044af6 (diff)
downloadllvm-users/5chmidti/specify_test_language_versions_in_def_file.zip
llvm-users/5chmidti/specify_test_language_versions_in_def_file.tar.gz
llvm-users/5chmidti/specify_test_language_versions_in_def_file.tar.bz2
[clang][test] add TestLanguage.def to specify all tested language versionsusers/5chmidti/specify_test_language_versions_in_def_file
Adds a def file to have a single location where tested language versions are specified. Removes the need to update multiple locations in the testing infrastructure to add a new language version to be tested. Test instatiation can now include all languages without needing to specify them. This patch also adds pretty printing for instantiated test names. That means, that a test instantiated with C++23 will have the name `...TestSuite/TestName/CXX23` instead ending with some number (index of the argument for instantiation of the test), which improves a better experience when encountering a test failure with a specific language version. The suffix will also contain an `_win` if the target contains `win`.
-rw-r--r--clang/include/clang/Testing/CommandLineArgs.h17
-rw-r--r--clang/include/clang/Testing/TestClangConfig.h146
-rw-r--r--clang/include/clang/Testing/TestLanguage.def39
-rw-r--r--clang/lib/Testing/CommandLineArgs.cpp119
-rw-r--r--clang/unittests/AST/MatchVerifier.h37
-rw-r--r--clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp18
-rw-r--r--clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp10
-rw-r--r--clang/unittests/Tooling/Syntax/BuildTreeTest.cpp8
-rw-r--r--clang/unittests/Tooling/Syntax/MutationsTest.cpp7
-rw-r--r--clang/unittests/Tooling/Syntax/SynthesisTest.cpp7
-rw-r--r--clang/unittests/Tooling/Syntax/TreeTest.cpp14
-rw-r--r--clang/unittests/Tooling/Syntax/TreeTestBase.cpp7
12 files changed, 280 insertions, 149 deletions
diff --git a/clang/include/clang/Testing/CommandLineArgs.h b/clang/include/clang/Testing/CommandLineArgs.h
index e71907e..52beac7 100644
--- a/clang/include/clang/Testing/CommandLineArgs.h
+++ b/clang/include/clang/Testing/CommandLineArgs.h
@@ -21,19 +21,18 @@
namespace clang {
enum TestLanguage {
- Lang_C89,
- Lang_C99,
- Lang_CXX03,
- Lang_CXX11,
- Lang_CXX14,
- Lang_CXX17,
- Lang_CXX20,
- Lang_CXX23,
+#define TESTLANGUAGE(lang, version, std_flag, version_index) \
+ Lang_##lang##version,
+#include "clang/Testing/TestLanguage.def"
+
Lang_OpenCL,
Lang_OBJC,
- Lang_OBJCXX
+ Lang_OBJCXX,
};
+std::vector<TestLanguage> getCOrLater(int MinimumStd);
+std::vector<TestLanguage> getCXXOrLater(int MinimumStd);
+
std::vector<std::string> getCommandLineArgsForTesting(TestLanguage Lang);
std::vector<std::string> getCC1ArgsForTesting(TestLanguage Lang);
diff --git a/clang/include/clang/Testing/TestClangConfig.h b/clang/include/clang/Testing/TestClangConfig.h
index 1b4efca..4dd1eb9 100644
--- a/clang/include/clang/Testing/TestClangConfig.h
+++ b/clang/include/clang/Testing/TestClangConfig.h
@@ -27,37 +27,117 @@ struct TestClangConfig {
/// The argument of the `-target` command line flag.
std::string Target;
- bool isC() const { return Language == Lang_C89 || Language == Lang_C99; }
-
- bool isC99OrLater() const { return Language == Lang_C99; }
-
- bool isCXX() const {
- return Language == Lang_CXX03 || Language == Lang_CXX11 ||
- Language == Lang_CXX14 || Language == Lang_CXX17 ||
- Language == Lang_CXX20 || Language == Lang_CXX23;
+ bool isC() const {
+ return false
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ || Language == Lang_##lang##version
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
}
- bool isCXX11OrLater() const {
- return Language == Lang_CXX11 || Language == Lang_CXX14 ||
- Language == Lang_CXX17 || Language == Lang_CXX20 ||
- Language == Lang_CXX23;
+ bool isCOrLater(int MinimumStdVersion) const {
+ const auto MinimumStdVersionIndex = 0
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ +(MinimumStdVersion == version ? version_index : 0)
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
+ switch (Language) {
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return MinimumStdVersionIndex <= version_index;
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ default:
+ return false;
+ }
}
- bool isCXX14OrLater() const {
- return Language == Lang_CXX14 || Language == Lang_CXX17 ||
- Language == Lang_CXX20 || Language == Lang_CXX23;
+ bool isC99OrLater() const { return isCOrLater(99); }
+
+ bool isCOrEarlier(int MaximumStdVersion) const {
+ const auto MaximumStdVersionIndex = 0
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ +(MaximumStdVersion == version ? version_index : 0)
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
+ switch (Language) {
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return MaximumStdVersionIndex >= version_index;
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ default:
+ return false;
+ }
}
- bool isCXX17OrLater() const {
- return Language == Lang_CXX17 || Language == Lang_CXX20 ||
- Language == Lang_CXX23;
+ bool isCXX() const {
+ return false
+#define TESTLANGUAGE
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ || Language == Lang_##lang##version
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
}
- bool isCXX20OrLater() const {
- return Language == Lang_CXX20 || Language == Lang_CXX23;
+ bool isCXXOrLater(int MinimumStdVersion) const {
+ const auto MinimumStdVersionIndex = 0
+#define TESTLANGUAGE
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ +(MinimumStdVersion == version ? version_index : 0)
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
+ switch (Language) {
+#define TESTLANGUAGE
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return MinimumStdVersionIndex <= version_index;
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ default:
+ return false;
+ }
}
- bool isCXX23OrLater() const { return Language == Lang_CXX23; }
+ bool isCXX11OrLater() const { return isCXXOrLater(11); }
+
+ bool isCXX14OrLater() const { return isCXXOrLater(14); }
+
+ bool isCXX17OrLater() const { return isCXXOrLater(17); }
+
+ bool isCXX20OrLater() const { return isCXXOrLater(20); }
+
+ bool isCXX23OrLater() const { return isCXXOrLater(23); }
+
+ bool isCXXOrEarlier(int MaximumStdVersion) const {
+ const auto MaximumStdVersionIndex = 0
+#define TESTLANGUAGE
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ +(MaximumStdVersion == version ? version_index : 0)
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ ;
+ switch (Language) {
+#define TESTLANGUAGE
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return MaximumStdVersionIndex >= version_index;
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index)
+#include "clang/Testing/TestLanguage.def"
+ default:
+ return false;
+ }
+ }
bool supportsCXXDynamicExceptionSpecification() const {
return Language == Lang_CXX03 || Language == Lang_CXX11 ||
@@ -75,6 +155,30 @@ struct TestClangConfig {
return Result;
}
+ std::string toShortString() const {
+ std::string Result;
+ llvm::raw_string_ostream OS(Result);
+ switch (Language) {
+#define TESTLANGUAGE(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ OS << (#lang #version); \
+ break;
+#include "clang/Testing/TestLanguage.def"
+ case Lang_OpenCL:
+ OS << "OpenCL";
+ break;
+ case Lang_OBJC:
+ OS << "OBJC";
+ break;
+ case Lang_OBJCXX:
+ OS << "OBJCXX";
+ break;
+ }
+
+ OS << (Target.find("win") != std::string::npos ? "_win" : "");
+ return Result;
+ }
+
std::string toString() const {
std::string Result;
llvm::raw_string_ostream OS(Result);
diff --git a/clang/include/clang/Testing/TestLanguage.def b/clang/include/clang/Testing/TestLanguage.def
new file mode 100644
index 0000000..88155a3
--- /dev/null
+++ b/clang/include/clang/Testing/TestLanguage.def
@@ -0,0 +1,39 @@
+
+//===-- TestLanguage.def - Language Versions for Testing --------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef TESTLANGUAGE
+#error "TESTLANGUAGE must be defined before including this file"
+#endif
+
+#ifndef TESTLANGUAGE_C
+#define TESTLANGUAGE_C TESTLANGUAGE
+#endif
+
+#ifndef TESTLANGUAGE_CXX
+#define TESTLANGUAGE_CXX TESTLANGUAGE
+#endif
+
+TESTLANGUAGE_C(C, 89, c89, 0)
+TESTLANGUAGE_C(C, 99, c99, 1)
+TESTLANGUAGE_C(C, 11, c11, 2)
+TESTLANGUAGE_C(C, 17, c17, 3)
+TESTLANGUAGE_C(C, 23, c23, 4)
+
+// TESTLANGUAGE_CXX(CXX, 98, c++98, 0)
+TESTLANGUAGE_CXX(CXX, 03, c++03, 1)
+TESTLANGUAGE_CXX(CXX, 11, c++11, 2)
+TESTLANGUAGE_CXX(CXX, 14, c++14, 3)
+TESTLANGUAGE_CXX(CXX, 17, c++17, 4)
+TESTLANGUAGE_CXX(CXX, 20, c++20, 5)
+TESTLANGUAGE_CXX(CXX, 23, c++23, 6)
+TESTLANGUAGE_CXX(CXX, 26, c++26, 7)
+
+#undef TESTLANGUAGE_CXX
+#undef TESTLANGUAGE_C
+#undef TESTLANGUAGE
diff --git a/clang/lib/Testing/CommandLineArgs.cpp b/clang/lib/Testing/CommandLineArgs.cpp
index 3abc689..15d5ad2 100644
--- a/clang/lib/Testing/CommandLineArgs.cpp
+++ b/clang/lib/Testing/CommandLineArgs.cpp
@@ -11,99 +11,84 @@
#include "llvm/Support/ErrorHandling.h"
namespace clang {
+std::vector<TestLanguage> getCOrLater(const int MinimumStd) {
+ std::vector<TestLanguage> Result{};
+
+#define TESTLANGUAGE(lang, version, std_flag, version_index)
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ if (version >= MinimumStd) \
+ Result.push_back(Lang_##lang##version);
+#include "clang/Testing/TestLanguage.def"
+
+ return Result;
+}
+std::vector<TestLanguage> getCXXOrLater(const int MinimumStd) {
+ std::vector<TestLanguage> Result{};
+
+#define TESTLANGUAGE(lang, version, std_flag, version_index)
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ if (version >= MinimumStd) \
+ Result.push_back(Lang_##lang##version);
+#include "clang/Testing/TestLanguage.def"
+
+ return Result;
+}
std::vector<std::string> getCommandLineArgsForTesting(TestLanguage Lang) {
- std::vector<std::string> Args;
// Test with basic arguments.
switch (Lang) {
- case Lang_C89:
- Args = {"-x", "c", "-std=c89"};
- break;
- case Lang_C99:
- Args = {"-x", "c", "-std=c99"};
- break;
- case Lang_CXX03:
- Args = {"-std=c++03", "-frtti"};
- break;
- case Lang_CXX11:
- Args = {"-std=c++11", "-frtti"};
- break;
- case Lang_CXX14:
- Args = {"-std=c++14", "-frtti"};
- break;
- case Lang_CXX17:
- Args = {"-std=c++17", "-frtti"};
- break;
- case Lang_CXX20:
- Args = {"-std=c++20", "-frtti"};
- break;
- case Lang_CXX23:
- Args = {"-std=c++23", "-frtti"};
- break;
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return { "-x", "c", "-std=" #std_flag };
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return { "-std=" #std_flag, "-frtti" };
+#include "clang/Testing/TestLanguage.def"
+
case Lang_OBJC:
- Args = {"-x", "objective-c", "-frtti", "-fobjc-nonfragile-abi"};
- break;
+ return {"-x", "objective-c", "-frtti", "-fobjc-nonfragile-abi"};
case Lang_OBJCXX:
- Args = {"-x", "objective-c++", "-frtti"};
- break;
+ return {"-x", "objective-c++", "-frtti"};
case Lang_OpenCL:
llvm_unreachable("Not implemented yet!");
}
- return Args;
+ llvm_unreachable("Not implemented yet!");
}
std::vector<std::string> getCC1ArgsForTesting(TestLanguage Lang) {
- std::vector<std::string> Args;
switch (Lang) {
- case Lang_C89:
- Args = {"-xc", "-std=c89"};
- break;
- case Lang_C99:
- Args = {"-xc", "-std=c99"};
- break;
- case Lang_CXX03:
- Args = {"-std=c++03"};
- break;
- case Lang_CXX11:
- Args = {"-std=c++11"};
- break;
- case Lang_CXX14:
- Args = {"-std=c++14"};
- break;
- case Lang_CXX17:
- Args = {"-std=c++17"};
- break;
- case Lang_CXX20:
- Args = {"-std=c++20"};
- break;
- case Lang_CXX23:
- Args = {"-std=c++23"};
- break;
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return { "-xc", "-std=" #std_flag };
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ return { "-std=" #std_flag };
+#include "clang/Testing/TestLanguage.def"
+
case Lang_OBJC:
- Args = {"-xobjective-c"};
+ return {"-xobjective-c"};
break;
case Lang_OBJCXX:
- Args = {"-xobjective-c++"};
+ return {"-xobjective-c++"};
break;
case Lang_OpenCL:
llvm_unreachable("Not implemented yet!");
}
- return Args;
+ llvm_unreachable("Not implemented yet!");
}
StringRef getFilenameForTesting(TestLanguage Lang) {
switch (Lang) {
- case Lang_C89:
- case Lang_C99:
+#define TESTLANGUAGE
+#define TESTLANGUAGE_C(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
return "input.c";
-
- case Lang_CXX03:
- case Lang_CXX11:
- case Lang_CXX14:
- case Lang_CXX17:
- case Lang_CXX20:
- case Lang_CXX23:
+#define TESTLANGUAGE_CXX(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
return "input.cc";
+#include "clang/Testing/TestLanguage.def"
case Lang_OpenCL:
return "input.cl";
diff --git a/clang/unittests/AST/MatchVerifier.h b/clang/unittests/AST/MatchVerifier.h
index da1e351d..8bda039 100644
--- a/clang/unittests/AST/MatchVerifier.h
+++ b/clang/unittests/AST/MatchVerifier.h
@@ -88,38 +88,13 @@ MatchVerifier<NodeType>::match(const std::string &Code,
StringRef FileName;
switch (L) {
- case Lang_C89:
- Args.push_back("-std=c89");
- FileName = "input.c";
- break;
- case Lang_C99:
- Args.push_back("-std=c99");
- FileName = "input.c";
- break;
- case Lang_CXX03:
- Args.push_back("-std=c++03");
- FileName = "input.cc";
- break;
- case Lang_CXX11:
- Args.push_back("-std=c++11");
- FileName = "input.cc";
- break;
- case Lang_CXX14:
- Args.push_back("-std=c++14");
- FileName = "input.cc";
- break;
- case Lang_CXX17:
- Args.push_back("-std=c++17");
- FileName = "input.cc";
- break;
- case Lang_CXX20:
- Args.push_back("-std=c++20");
- FileName = "input.cc";
- break;
- case Lang_CXX23:
- Args.push_back("-std=c++23");
- FileName = "input.cc";
+#define TESTLANGUAGE(lang, version, std_flag, version_index) \
+ case Lang_##lang##version: \
+ Args.push_back("-std=" #std_flag); \
+ FileName = getFilenameForTesting(Lang_##lang##version); \
break;
+#include "clang/Testing/TestLanguage.def"
+
case Lang_OpenCL:
Args.push_back("-cl-no-stdinc");
FileName = "input.cl";
diff --git a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
index 2e42b85..aed6a64 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
@@ -1224,7 +1224,7 @@ TEST_P(ASTMatchersTest, CastExpression_MatchesImplicitCasts) {
}
TEST_P(ASTMatchersTest, CastExpr_DoesNotMatchNonCasts) {
- if (GetParam().Language == Lang_C89 || GetParam().Language == Lang_C99) {
+ if (GetParam().isC()) {
// This does have a cast in C
EXPECT_TRUE(matches("char c = '0';", implicitCastExpr()));
} else {
@@ -1678,7 +1678,7 @@ TEST_P(ASTMatchersTest, FunctionProtoType) {
}
TEST_P(ASTMatchersTest, FunctionProtoType_C) {
- if (!GetParam().isC()) {
+ if (!GetParam().isCOrEarlier(17)) {
return;
}
EXPECT_TRUE(notMatches("void f();", functionProtoType()));
@@ -2745,8 +2745,11 @@ TEST(MatchFinderAPI, MatchesDynamic) {
static std::vector<TestClangConfig> allTestClangConfigs() {
std::vector<TestClangConfig> all_configs;
- for (TestLanguage lang : {Lang_C89, Lang_C99, Lang_CXX03, Lang_CXX11,
- Lang_CXX14, Lang_CXX17, Lang_CXX20, Lang_CXX23}) {
+ for (TestLanguage lang : {
+#define TESTLANGUAGE(lang, version, std_flag, version_index) \
+ Lang_##lang##version,
+#include "clang/Testing/TestLanguage.def"
+ }) {
TestClangConfig config;
config.Language = lang;
@@ -2770,8 +2773,11 @@ static std::vector<TestClangConfig> allTestClangConfigs() {
return all_configs;
}
-INSTANTIATE_TEST_SUITE_P(ASTMatchersTests, ASTMatchersTest,
- testing::ValuesIn(allTestClangConfigs()));
+INSTANTIATE_TEST_SUITE_P(
+ ASTMatchersTests, ASTMatchersTest, testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
} // namespace ast_matchers
} // namespace clang
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
index af99c73..ada3be2 100644
--- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
+++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
@@ -3070,10 +3070,13 @@ B func1() { return 42; }
auto M = expr(unless(integerLiteral(equals(24)))).bind("intLit");
EXPECT_TRUE(matchAndVerifyResultTrue(
Code, traverse(TK_AsIs, M),
- std::make_unique<VerifyIdIsBoundTo<Expr>>("intLit", 6)));
+ std::make_unique<VerifyIdIsBoundTo<Expr>>("intLit", 6),
+ {"-std=c++11"}));
+
EXPECT_TRUE(matchAndVerifyResultTrue(
Code, traverse(TK_IgnoreUnlessSpelledInSource, M),
- std::make_unique<VerifyIdIsBoundTo<Expr>>("intLit", 1)));
+ std::make_unique<VerifyIdIsBoundTo<Expr>>("intLit", 1),
+ {"-std=c++11"}));
}
{
auto M =
@@ -3116,7 +3119,8 @@ B func1() { return 42; }
auto M = expr().bind("allExprs");
EXPECT_TRUE(matchAndVerifyResultTrue(
Code, traverse(TK_AsIs, M),
- std::make_unique<VerifyIdIsBoundTo<Expr>>("allExprs", 6)));
+ std::make_unique<VerifyIdIsBoundTo<Expr>>("allExprs", 6),
+ {"-std=c++11"}));
EXPECT_TRUE(matchAndVerifyResultTrue(
Code, traverse(TK_IgnoreUnlessSpelledInSource, M),
std::make_unique<VerifyIdIsBoundTo<Expr>>("allExprs", 1)));
diff --git a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
index 37e3546..4ff5e8b 100644
--- a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
+++ b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
@@ -88,8 +88,12 @@ private:
}
};
-INSTANTIATE_TEST_SUITE_P(SyntaxTreeTests, BuildSyntaxTreeTest,
- testing::ValuesIn(allTestClangConfigs()) );
+INSTANTIATE_TEST_SUITE_P(
+ SyntaxTreeTests, BuildSyntaxTreeTest,
+ testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
TEST_P(BuildSyntaxTreeTest, Simple) {
EXPECT_TRUE(treeDumpEqual(
diff --git a/clang/unittests/Tooling/Syntax/MutationsTest.cpp b/clang/unittests/Tooling/Syntax/MutationsTest.cpp
index 1c3d6aa..35692fd 100644
--- a/clang/unittests/Tooling/Syntax/MutationsTest.cpp
+++ b/clang/unittests/Tooling/Syntax/MutationsTest.cpp
@@ -54,8 +54,11 @@ protected:
};
};
-INSTANTIATE_TEST_SUITE_P(SyntaxTreeTests, MutationTest,
- ::testing::ValuesIn(allTestClangConfigs()) );
+INSTANTIATE_TEST_SUITE_P(
+ SyntaxTreeTests, MutationTest, ::testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
TEST_P(MutationTest, RemoveStatement_InCompound) {
CheckTransformation(RemoveStatement, "void test() { [[100+100;]] test(); }",
diff --git a/clang/unittests/Tooling/Syntax/SynthesisTest.cpp b/clang/unittests/Tooling/Syntax/SynthesisTest.cpp
index be88512..ccfdcd0 100644
--- a/clang/unittests/Tooling/Syntax/SynthesisTest.cpp
+++ b/clang/unittests/Tooling/Syntax/SynthesisTest.cpp
@@ -38,8 +38,11 @@ protected:
}
};
-INSTANTIATE_TEST_SUITE_P(SynthesisTests, SynthesisTest,
- ::testing::ValuesIn(allTestClangConfigs()) );
+INSTANTIATE_TEST_SUITE_P(
+ SynthesisTests, SynthesisTest, ::testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
TEST_P(SynthesisTest, Leaf_Punctuation) {
buildTree("", GetParam());
diff --git a/clang/unittests/Tooling/Syntax/TreeTest.cpp b/clang/unittests/Tooling/Syntax/TreeTest.cpp
index 44cf42f..b553f70 100644
--- a/clang/unittests/Tooling/Syntax/TreeTest.cpp
+++ b/clang/unittests/Tooling/Syntax/TreeTest.cpp
@@ -103,8 +103,11 @@ protected:
}
};
-INSTANTIATE_TEST_SUITE_P(TreeTests, TreeTest,
- ::testing::ValuesIn(allTestClangConfigs()) );
+INSTANTIATE_TEST_SUITE_P(
+ TreeTests, TreeTest, ::testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
TEST_P(TreeTest, FirstLeaf) {
buildTree("", GetParam());
@@ -221,8 +224,11 @@ protected:
}
};
-INSTANTIATE_TEST_SUITE_P(TreeTests, ListTest,
- ::testing::ValuesIn(allTestClangConfigs()) );
+INSTANTIATE_TEST_SUITE_P(
+ TreeTests, ListTest, ::testing::ValuesIn(allTestClangConfigs()),
+ [](const testing::TestParamInfo<TestClangConfig> &Info) {
+ return Info.param.toShortString();
+ });
/// "a, b, c" <=> [("a", ","), ("b", ","), ("c", null)]
TEST_P(ListTest, List_Separated_WellFormed) {
diff --git a/clang/unittests/Tooling/Syntax/TreeTestBase.cpp b/clang/unittests/Tooling/Syntax/TreeTestBase.cpp
index f387b50..14c446c 100644
--- a/clang/unittests/Tooling/Syntax/TreeTestBase.cpp
+++ b/clang/unittests/Tooling/Syntax/TreeTestBase.cpp
@@ -48,8 +48,11 @@ ArrayRef<syntax::Token> tokens(syntax::Node *N,
std::vector<TestClangConfig> clang::syntax::allTestClangConfigs() {
std::vector<TestClangConfig> all_configs;
- for (TestLanguage lang : {Lang_C89, Lang_C99, Lang_CXX03, Lang_CXX11,
- Lang_CXX14, Lang_CXX17, Lang_CXX20}) {
+ for (TestLanguage lang : {
+#define TESTLANGUAGE(lang, version, std_flag, version_index) \
+ Lang_##lang##version,
+#include "clang/Testing/TestLanguage.def"
+ }) {
TestClangConfig config;
config.Language = lang;
config.Target = "x86_64-pc-linux-gnu";