Index: ppapi/tests/testing_instance.cc |
diff --git a/ppapi/tests/testing_instance.cc b/ppapi/tests/testing_instance.cc |
index e50bb5a3610ad0b0cd3cf10a97a6560fc50edd8c..056477daaaa4014e1ebbcc57e611edcd11fced02 100644 |
--- a/ppapi/tests/testing_instance.cc |
+++ b/ppapi/tests/testing_instance.cc |
@@ -56,6 +56,7 @@ bool TestingInstance::Init(uint32_t argc, |
if (argv[i][0] == '\0') |
break; |
current_case_ = CaseForTestName(argv[i]); |
+ test_filter_ = FilterForTestName(argv[i]); |
if (!current_case_) |
errors_.append(std::string("Unknown test case ") + argv[i]); |
else if (!current_case_->Init()) |
@@ -144,7 +145,7 @@ void TestingInstance::ExecuteTests(int32_t unused) { |
LogAvailableTests(); |
errors_.append("FAIL: Only listed tests"); |
} else { |
- current_case_->RunTest(); |
+ current_case_->RunTests(test_filter_); |
// Automated PyAuto tests rely on finding the exact strings below. |
LogHTML(errors_.empty() ? |
"<span class=\"pass\">[SHUTDOWN]</span> All tests passed." : |
@@ -156,16 +157,24 @@ void TestingInstance::ExecuteTests(int32_t unused) { |
PostMessage(pp::Var("TESTING_MESSAGE:DidExecuteTests")); |
} |
-TestCase* TestingInstance::CaseForTestName(const char* name) { |
+TestCase* TestingInstance::CaseForTestName(const std::string& name) { |
+ std::string case_name = name.substr(0, name.find_first_of('_')); |
TestCaseFactory* iter = TestCaseFactory::head_; |
while (iter != NULL) { |
- if (std::strcmp(name, iter->name_) == 0) |
+ if (case_name == iter->name_) |
return iter->method_(this); |
iter = iter->next_; |
} |
return NULL; |
} |
+std::string TestingInstance::FilterForTestName(const std::string& name) { |
+ size_t delim = name.find_first_of('_'); |
+ if (delim != std::string::npos) |
+ return name.substr(delim+1); |
+ return ""; |
+} |
+ |
void TestingInstance::LogAvailableTests() { |
// Print out a listing of all tests. |
std::vector<std::string> test_cases; |