Fix bug that meant that dependent tests were never reported as

failing (though they could still crash).
(Cache the result of the test in the output object, not in the
test object which is reused from the prerequisite to the dependent.)
Review URL: http://codereview.chromium.org/321001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
erik.corry@gmail.com 2009-10-22 19:09:09 +00:00
parent 38e2b5c97b
commit d50fbb634e
3 changed files with 34 additions and 4 deletions

View File

@ -33,6 +33,17 @@ test-debug/DebuggerAgent: PASS, (PASS || FAIL) if $system == linux
# BUG(382): Weird test. Can't guarantee that it never times out.
test-api/ApplyInterruption: PASS || TIMEOUT
# This is about to go away anyway since new snapshot code is on the way.
test-serialize/Deserialize: FAIL
test-serialize/DeserializeAndRunScript: FAIL
test-serialize/DeserializeNatives: FAIL
test-serialize/DeserializeExtensions: FAIL
# These tests always fail. They are here to test test.py. If
# they don't fail then test.py has failed.
test-serialize/TestThatAlwaysFails: FAIL
test-serialize/DependentTestThatAlwaysFails: FAIL
[ $arch == arm ]

View File

@ -286,3 +286,22 @@ DEPENDENT_TEST(DeserializeExtensions, Serialize) {
v8::Local<v8::Value> value = script->Run();
CHECK(value->IsUndefined());
}
extern "C" void V8_Fatal(const char* file, int line, const char* format, ...);
TEST(TestThatAlwaysSucceeds) {
}
TEST(TestThatAlwaysFails) {
bool ArtificialFailure = false;
CHECK(ArtificialFailure);
}
DEPENDENT_TEST(DependentTestThatAlwaysFails, TestThatAlwaysSucceeds) {
bool ArtificialFailure2 = false;
CHECK(ArtificialFailure2);
}

View File

@ -326,6 +326,7 @@ class CommandOutput(object):
self.timed_out = timed_out
self.stdout = stdout
self.stderr = stderr
self.failed = None
class TestCase(object):
@ -333,7 +334,6 @@ class TestCase(object):
def __init__(self, context, path):
self.path = path
self.context = context
self.failed = None
self.duration = None
def IsNegative(self):
@ -343,9 +343,9 @@ class TestCase(object):
return cmp(other.duration, self.duration)
def DidFail(self, output):
if self.failed is None:
self.failed = self.IsFailureOutput(output)
return self.failed
if output.failed is None:
output.failed = self.IsFailureOutput(output)
return output.failed
def IsFailureOutput(self, output):
return output.exit_code != 0