Minor table-driven test refactor Change-Id: Idf7bc5d97b1ec9c560c2b0f4db96fe7e10e8d642 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/20720 Commit-Queue: Richard Wang <richardwa@google.com> Reviewed-by: Takuto Ikuta <tikuta@google.com>
diff --git a/src/gn/bundle_data_unittest.cc b/src/gn/bundle_data_unittest.cc index 2c2ff40..e642ef4 100644 --- a/src/gn/bundle_data_unittest.cc +++ b/src/gn/bundle_data_unittest.cc
@@ -1,16 +1,15 @@ // Copyright 2021 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #include "gn/bundle_data.h" #include "util/test/test.h" TEST(BundleDataTest, GetAssetsCatalogDirectory) { - struct TestCase { + const struct TestCase { SourceFile source_file; SourceFile catalog_dir; - }; - - static TestCase kTestCases[] = { + } test_cases[] = { { .source_file = SourceFile("//my/bundle/foo.xcassets/my/file"), .catalog_dir = SourceFile("//my/bundle/foo.xcassets"), @@ -26,7 +25,7 @@ }, }; - for (const TestCase& test_case : kTestCases) { + for (const auto& test_case : test_cases) { const SourceFile assets_catalog_dir = BundleData::GetAssetsCatalogDirectory(test_case.source_file); EXPECT_EQ(assets_catalog_dir, test_case.catalog_dir);
diff --git a/src/gn/label_pattern_unittest.cc b/src/gn/label_pattern_unittest.cc index 5d65853..7ae9f15 100644 --- a/src/gn/label_pattern_unittest.cc +++ b/src/gn/label_pattern_unittest.cc
@@ -11,23 +11,17 @@ #include "gn/value.h" #include "util/test/test.h" -namespace { - -struct PatternCase { - const char* input; - bool success; - - LabelPattern::Type type; - const char* dir; - const char* name; - const char* toolchain; -}; - -} // namespace - TEST(LabelPattern, PatternParse) { SourceDir current_dir("//foo/"); - PatternCase cases[] = { + const struct TestCase { + const char* input; + bool success; + + LabelPattern::Type type; + const char* dir; + const char* name; + const char* toolchain; + } test_cases[] = { // Missing stuff. {"", false, LabelPattern::MATCH, "", "", ""}, {":", false, LabelPattern::MATCH, "", "", ""}, @@ -71,18 +65,17 @@ #endif }; - for (size_t i = 0; i < std::size(cases); i++) { - const PatternCase& cur = cases[i]; + for (const auto& test_case : test_cases) { Err err; LabelPattern result = LabelPattern::GetPattern( - current_dir, std::string_view(), Value(nullptr, cur.input), &err); + current_dir, std::string_view(), Value(nullptr, test_case.input), &err); - EXPECT_EQ(cur.success, !err.has_error()) << i << " " << cur.input; - EXPECT_EQ(cur.type, result.type()) << i << " " << cur.input; - EXPECT_EQ(cur.dir, result.dir().value()) << i << " " << cur.input; - EXPECT_EQ(cur.name, result.name()) << i << " " << cur.input; - EXPECT_EQ(cur.toolchain, result.toolchain().GetUserVisibleName(false)) - << i << " " << cur.input; + EXPECT_EQ(test_case.success, !err.has_error()) << test_case.input; + EXPECT_EQ(test_case.type, result.type()) << test_case.input; + EXPECT_EQ(test_case.dir, result.dir().value()) << test_case.input; + EXPECT_EQ(test_case.name, result.name()) << test_case.input; + EXPECT_EQ(test_case.toolchain, result.toolchain().GetUserVisibleName(false)) + << test_case.input; } }
diff --git a/src/gn/label_unittest.cc b/src/gn/label_unittest.cc index 00f881e..35ce390 100644 --- a/src/gn/label_unittest.cc +++ b/src/gn/label_unittest.cc
@@ -12,22 +12,16 @@ #include "util/build_config.h" #include "util/test/test.h" -namespace { - -struct ParseDepStringCase { - const char* cur_dir; - const char* str; - bool success; - const char* expected_dir; - const char* expected_name; - const char* expected_toolchain_dir; - const char* expected_toolchain_name; -}; - -} // namespace - TEST(Label, Resolve) { - ParseDepStringCase cases[] = { + const struct TestCase { + const char* cur_dir; + const char* str; + bool success; + const char* expected_dir; + const char* expected_name; + const char* expected_toolchain_dir; + const char* expected_toolchain_name; + } test_cases[] = { {"//chrome/", "", false, "", "", "", ""}, {"//chrome/", "/", false, "", "", "", ""}, {"//chrome/", ":", false, "", "", "", ""}, @@ -78,23 +72,23 @@ Label default_toolchain(SourceDir("//t/"), "d"); - for (size_t i = 0; i < std::size(cases); i++) { - const ParseDepStringCase& cur = cases[i]; - + for (const auto& test_case : test_cases) { std::string location, name; Err err; Value v(nullptr, Value::STRING); - v.string_value() = cur.str; - Label result = Label::Resolve(SourceDir(cur.cur_dir), std::string_view(), - default_toolchain, v, &err); - EXPECT_EQ(cur.success, !err.has_error()) << i << " " << cur.str; - if (!err.has_error() && cur.success) { - EXPECT_EQ(cur.expected_dir, result.dir().value()) << i << " " << cur.str; - EXPECT_EQ(cur.expected_name, result.name()) << i << " " << cur.str; - EXPECT_EQ(cur.expected_toolchain_dir, result.toolchain_dir().value()) - << i << " " << cur.str; - EXPECT_EQ(cur.expected_toolchain_name, result.toolchain_name()) - << i << " " << cur.str; + v.string_value() = test_case.str; + Label result = + Label::Resolve(SourceDir(test_case.cur_dir), std::string_view(), + default_toolchain, v, &err); + EXPECT_EQ(test_case.success, !err.has_error()) << test_case.str; + if (!err.has_error() && test_case.success) { + EXPECT_EQ(test_case.expected_dir, result.dir().value()) << test_case.str; + EXPECT_EQ(test_case.expected_name, result.name()) << test_case.str; + EXPECT_EQ(test_case.expected_toolchain_dir, + result.toolchain_dir().value()) + << test_case.str; + EXPECT_EQ(test_case.expected_toolchain_name, result.toolchain_name()) + << test_case.str; } } }