Index: gpu/config/gpu_test_expectations_parser_unittest.cc |
diff --git a/gpu/config/gpu_test_expectations_parser_unittest.cc b/gpu/config/gpu_test_expectations_parser_unittest.cc |
index b6ca529d506f16686a4f0506a77c3b6683a4efb9..0639a776d8d6e45ae1e6fc12697230e76ab30de7 100644 |
--- a/gpu/config/gpu_test_expectations_parser_unittest.cc |
+++ b/gpu/config/gpu_test_expectations_parser_unittest.cc |
@@ -2,12 +2,58 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/format_macros.h" |
#include "base/logging.h" |
+#include "base/strings/stringprintf.h" |
#include "gpu/config/gpu_test_expectations_parser.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace gpu { |
+struct TestOSEntry { |
+ const char* name; |
+ GPUTestConfig::OS os; |
+}; |
+ |
+static const TestOSEntry kOsFamilyWin = { "WIN", GPUTestConfig::kOsWin }; |
+static const TestOSEntry kOsFamilyMac = { "MAC", GPUTestConfig::kOsMac }; |
+ |
+static const struct TestOsWithFamily { |
+ TestOSEntry version; |
+ TestOSEntry family; |
+} kOSVersionsWithFamily[] = { |
+ { { "XP", GPUTestConfig::kOsWinXP }, kOsFamilyWin }, |
+ { { "VISTA", GPUTestConfig::kOsWinVista }, kOsFamilyWin }, |
+ { { "WIN7", GPUTestConfig::kOsWin7 }, kOsFamilyWin }, |
+ { { "WIN8", GPUTestConfig::kOsWin8 }, kOsFamilyWin }, |
+ { { "LEOPARD", GPUTestConfig::kOsMacLeopard }, kOsFamilyMac }, |
+ { { "SNOWLEOPARD", GPUTestConfig::kOsMacSnowLeopard }, kOsFamilyMac }, |
+ { { "LION", GPUTestConfig::kOsMacLion }, kOsFamilyMac }, |
+ { { "MOUNTAINLION", GPUTestConfig::kOsMacMountainLion }, kOsFamilyMac }, |
+ { { "MAVERICKS", GPUTestConfig::kOsMacMavericks }, kOsFamilyMac }, |
+ { { "YOSEMITE", GPUTestConfig::kOsMacYosemite }, kOsFamilyMac }, |
+ { { "LINUX", GPUTestConfig::kOsLinux }, |
+ { "LINUX", GPUTestConfig::kOsLinux } }, |
+ { { "CHROMEOS", GPUTestConfig::kOsChromeOS }, |
+ { "CHROMEOS", GPUTestConfig::kOsChromeOS } }, |
+ { { "ANDROID", GPUTestConfig::kOsAndroid }, |
+ { "ANDROID", GPUTestConfig::kOsAndroid } } |
+}; |
+ |
+TestOSEntry GetUnrelatedOS(const TestOSEntry& os) { |
+ return (os.os & kOsFamilyWin.os) ? kOsFamilyMac : kOsFamilyWin; |
+} |
+ |
+// Prints test parameter details. |
+std::ostream& operator << (std::ostream& out, const TestOsWithFamily& os) { |
+ out << "{ os_name: \"" << os.version.name |
+ << "\", os_flag: " << os.version.os |
+ << ", os_family: \"" << os.family.name |
+ << "\", os_family_flag: " << os.family.os |
+ << " }"; |
+ return out; |
+} |
+ |
class GPUTestExpectationsParserTest : public testing::Test { |
public: |
GPUTestExpectationsParserTest() { } |
@@ -29,10 +75,35 @@ class GPUTestExpectationsParserTest : public testing::Test { |
void TearDown() override {} |
+ void set_os(int32 os) { |
+ bot_config_.set_os(os); |
+ ASSERT_TRUE(bot_config_.IsValid()); |
+ } |
+ |
private: |
GPUTestBotConfig bot_config_; |
}; |
+class GPUTestExpectationsParserParamTest |
+ : public GPUTestExpectationsParserTest, |
+ public testing::WithParamInterface<TestOsWithFamily> { |
+ public: |
+ GPUTestExpectationsParserParamTest() { } |
+ |
+ ~GPUTestExpectationsParserParamTest() override {} |
+ |
+ protected: |
+ const GPUTestBotConfig& GetBotConfig() { |
+ set_os(GetParam().version.os); |
+ return bot_config(); |
+ } |
+ |
+ private: |
+ // Restrict access to bot_config() function. |
+ // GetBotConfig() should be used instead. |
+ using GPUTestExpectationsParserTest::bot_config; |
+}; |
+ |
TEST_F(GPUTestExpectationsParserTest, CommentOnly) { |
const std::string text = |
" \n" |
@@ -45,37 +116,40 @@ TEST_F(GPUTestExpectationsParserTest, CommentOnly) { |
parser.GetTestExpectation("some_test", bot_config())); |
} |
-TEST_F(GPUTestExpectationsParserTest, ValidFullEntry) { |
+TEST_P(GPUTestExpectationsParserParamTest, ValidFullEntry) { |
const std::string text = |
- "BUG12345 WIN7 RELEASE NVIDIA 0x0640 : MyTest = FAIL"; |
+ base::StringPrintf("BUG12345 %s RELEASE NVIDIA 0x0640 : MyTest = FAIL", |
+ GetParam().version.name); |
GPUTestExpectationsParser parser; |
EXPECT_TRUE(parser.LoadTestExpectations(text)); |
EXPECT_EQ(0u, parser.GetErrorMessages().size()); |
EXPECT_EQ(GPUTestExpectationsParser::kGpuTestFail, |
- parser.GetTestExpectation("MyTest", bot_config())); |
+ parser.GetTestExpectation("MyTest", GetBotConfig())); |
} |
-TEST_F(GPUTestExpectationsParserTest, ValidPartialEntry) { |
+TEST_P(GPUTestExpectationsParserParamTest, ValidPartialEntry) { |
const std::string text = |
- "BUG12345 WIN NVIDIA : MyTest = TIMEOUT"; |
+ base::StringPrintf("BUG12345 %s NVIDIA : MyTest = TIMEOUT", |
+ GetParam().family.name); |
GPUTestExpectationsParser parser; |
EXPECT_TRUE(parser.LoadTestExpectations(text)); |
EXPECT_EQ(0u, parser.GetErrorMessages().size()); |
EXPECT_EQ(GPUTestExpectationsParser::kGpuTestTimeout, |
- parser.GetTestExpectation("MyTest", bot_config())); |
+ parser.GetTestExpectation("MyTest", GetBotConfig())); |
} |
-TEST_F(GPUTestExpectationsParserTest, ValidUnrelatedOsEntry) { |
- const std::string text = |
- "BUG12345 LEOPARD : MyTest = TIMEOUT"; |
+TEST_P(GPUTestExpectationsParserParamTest, ValidUnrelatedOsEntry) { |
+ const std::string text = base::StringPrintf( |
+ "BUG12345 %s : MyTest = TIMEOUT", |
+ GetUnrelatedOS(GetParam().version).name); |
GPUTestExpectationsParser parser; |
EXPECT_TRUE(parser.LoadTestExpectations(text)); |
EXPECT_EQ(0u, parser.GetErrorMessages().size()); |
EXPECT_EQ(GPUTestExpectationsParser::kGpuTestPass, |
- parser.GetTestExpectation("MyTest", bot_config())); |
+ parser.GetTestExpectation("MyTest", GetBotConfig())); |
} |
TEST_F(GPUTestExpectationsParserTest, ValidUnrelatedTestEntry) { |
@@ -107,9 +181,11 @@ TEST_F(GPUTestExpectationsParserTest, AllModifiers) { |
parser.GetTestExpectation("MyTest", bot_config())); |
} |
-TEST_F(GPUTestExpectationsParserTest, DuplicateModifiers) { |
- const std::string text = |
- "BUG12345 WIN7 WIN7 RELEASE NVIDIA 0x0640 : MyTest = FAIL"; |
+TEST_P(GPUTestExpectationsParserParamTest, DuplicateModifiers) { |
+ const std::string text = base::StringPrintf( |
+ "BUG12345 %s %s RELEASE NVIDIA 0x0640 : MyTest = FAIL", |
+ GetParam().version.name, |
+ GetParam().version.name); |
GPUTestExpectationsParser parser; |
EXPECT_FALSE(parser.LoadTestExpectations(text)); |
@@ -160,9 +236,10 @@ TEST_F(GPUTestExpectationsParserTest, IllegalModifier) { |
EXPECT_NE(0u, parser.GetErrorMessages().size()); |
} |
-TEST_F(GPUTestExpectationsParserTest, OsConflicts) { |
- const std::string text = |
- "BUG12345 XP WIN : MyTest = FAIL"; |
+TEST_P(GPUTestExpectationsParserParamTest, OsConflicts) { |
+ const std::string text = base::StringPrintf("BUG12345 %s %s : MyTest = FAIL", |
+ GetParam().version.name, |
+ GetParam().family.name); |
GPUTestExpectationsParser parser; |
EXPECT_FALSE(parser.LoadTestExpectations(text)); |
@@ -196,10 +273,12 @@ TEST_F(GPUTestExpectationsParserTest, MoreThanOneGpuDeviceID) { |
EXPECT_NE(0u, parser.GetErrorMessages().size()); |
} |
-TEST_F(GPUTestExpectationsParserTest, MultipleEntriesConflicts) { |
- const std::string text = |
- "BUG12345 WIN7 RELEASE NVIDIA 0x0640 : MyTest = FAIL\n" |
- "BUG12345 WIN : MyTest = FAIL"; |
+TEST_P(GPUTestExpectationsParserParamTest, MultipleEntriesConflicts) { |
+ const std::string text = base::StringPrintf( |
+ "BUG12345 %s RELEASE NVIDIA 0x0640 : MyTest = FAIL\n" |
+ "BUG12345 %s : MyTest = FAIL", |
+ GetParam().version.name, |
+ GetParam().family.name); |
GPUTestExpectationsParser parser; |
EXPECT_FALSE(parser.LoadTestExpectations(text)); |
@@ -241,5 +320,9 @@ TEST_F(GPUTestExpectationsParserTest, StarMatching) { |
parser.GetTestExpectation("OtherTest", bot_config())); |
} |
+INSTANTIATE_TEST_CASE_P(GPUTestExpectationsParser, |
+ GPUTestExpectationsParserParamTest, |
+ ::testing::ValuesIn(kOSVersionsWithFamily)); |
+ |
} // namespace gpu |