Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(628)

Unified Diff: test/cctest/cctest.cc

Issue 456: Disable three debug tests that failed because they rely on wrong for-in order... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/cctest/cctest.h ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/cctest.cc
===================================================================
--- test/cctest/cctest.cc (revision 147)
+++ test/cctest/cctest.cc (working copy)
@@ -35,8 +35,8 @@
CcTest* CcTest::last_ = NULL;
-CcTest::CcTest(TestFunction* callback, const char* file, const char* name)
- : callback_(callback), name_(name), prev_(last_) {
+CcTest::CcTest(TestFunction* callback, const char* file, const char* name,
+ bool enabled) : callback_(callback), name_(name), prev_(last_) {
iposva 2008/09/05 00:00:04 Not sure this is the proper style for wrapping par
// Find the base name of this test (const_cast required on Windows).
char *basename = strrchr(const_cast<char *>(file), '/');
if (!basename) {
@@ -52,6 +52,7 @@
if (extension) *extension = 0;
// Install this test in the list of tests
file_ = basename;
+ enabled_ = enabled;
prev_ = last_;
last_ = this;
}
@@ -64,30 +65,6 @@
}
-static int RunMatchingTests(CcTest* current, char* file_or_name) {
- if (current == NULL) return 0;
- int run_count = 0;
- if (strcmp(current->file(), file_or_name) == 0
- || strcmp(current->name(), file_or_name) == 0) {
- current->Run();
- run_count++;
- }
- return run_count + RunMatchingTests(current->prev(), file_or_name);
-}
-
-
-static int RunMatchingTests(CcTest* current, char* file, char* name) {
- if (current == NULL) return 0;
- int run_count = 0;
- if (strcmp(current->file(), file) == 0
- && strcmp(current->name(), name) == 0) {
- current->Run();
- run_count++;
- }
- return run_count + RunMatchingTests(current->prev(), file, name);
-}
-
-
int main(int argc, char* argv[]) {
v8::internal::FlagList::SetFlagsFromCommandLine(&argc, argv, true);
int tests_run = 0;
@@ -97,6 +74,7 @@
if (strcmp(arg, "--list") == 0) {
PrintTestList(CcTest::last());
print_run_count = false;
+
} else {
char* arg_copy = strdup(arg);
char* testname = strchr(arg_copy, '/');
@@ -104,10 +82,32 @@
// Split the string in two by nulling the slash and then run
// exact matches.
*testname = 0;
- tests_run += RunMatchingTests(CcTest::last(), arg_copy, testname + 1);
+ char* file = arg_copy;
+ char* name = testname + 1;
+ CcTest* test = CcTest::last();
+ while (test != NULL) {
+ if (test->enabled()
+ && strcmp(test->file(), file) == 0
+ && strcmp(test->name(), name) == 0) {
+ test->Run();
+ tests_run++;
+ }
+ test = test->prev();
+ }
+
} else {
// Run all tests with the specified file or test name.
- tests_run += RunMatchingTests(CcTest::last(), arg_copy);
+ char* file_or_name = arg_copy;
+ CcTest* test = CcTest::last();
+ while (test != NULL) {
+ if (test->enabled()
+ && (strcmp(test->file(), file_or_name) == 0
+ || strcmp(test->name(), file_or_name) == 0)) {
+ test->Run();
+ tests_run++;
+ }
+ test = test->prev();
+ }
}
free(arg_copy);
}
« no previous file with comments | « test/cctest/cctest.h ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698