Commit d667ef8e authored by olehougaard's avatar olehougaard

Enabling a few tests when using snapshots.

Some of the tests that were disabled when using snapshot has been modified and reenabled.
Review URL: http://codereview.chromium.org/1937

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent eed1ab33
......@@ -4697,7 +4697,7 @@ THREADED_TEST(LockUnlockLock) {
}
static void EnsureNoSurvivingGlobalObjects() {
static int GetSurvivingGlobalObjectsCount() {
int count = 0;
v8::internal::Heap::CollectAllGarbage();
v8::internal::HeapIterator it;
......@@ -4710,38 +4710,34 @@ static void EnsureNoSurvivingGlobalObjects() {
#ifdef DEBUG
if (count > 0) v8::internal::Heap::TracePathToGlobal();
#endif
CHECK_EQ(0, count);
return count;
}
// This test assumes that there are zero global objects when the
// test starts. This is not going to be true if we are using the
// API fuzzer.
TEST(DontLeakGlobalObjects) {
// Regression test for issues 1139850 and 1174891.
v8::internal::V8::Initialize(NULL);
if (v8::internal::Snapshot::IsEnabled()) return;
v8::V8::Initialize();
EnsureNoSurvivingGlobalObjects();
int count = GetSurvivingGlobalObjectsCount();
for (int i = 0; i < 5; i++) {
{ v8::HandleScope scope;
LocalContext context;
}
EnsureNoSurvivingGlobalObjects();
CHECK_EQ(count, GetSurvivingGlobalObjectsCount());
{ v8::HandleScope scope;
LocalContext context;
v8_compile("Date")->Run();
}
EnsureNoSurvivingGlobalObjects();
CHECK_EQ(count, GetSurvivingGlobalObjectsCount());
{ v8::HandleScope scope;
LocalContext context;
v8_compile("/aaa/")->Run();
}
EnsureNoSurvivingGlobalObjects();
CHECK_EQ(count, GetSurvivingGlobalObjectsCount());
{ v8::HandleScope scope;
const char* extension_list[] = { "v8/gc" };
......@@ -4749,7 +4745,7 @@ TEST(DontLeakGlobalObjects) {
LocalContext context(&extensions);
v8_compile("gc();")->Run();
}
EnsureNoSurvivingGlobalObjects();
CHECK_EQ(count, GetSurvivingGlobalObjectsCount());
{ v8::HandleScope scope;
const char* extension_list[] = { "v8/print" };
......@@ -4757,14 +4753,13 @@ TEST(DontLeakGlobalObjects) {
LocalContext context(&extensions);
v8_compile("print('hest');")->Run();
}
EnsureNoSurvivingGlobalObjects();
CHECK_EQ(count, GetSurvivingGlobalObjectsCount());
}
}
THREADED_TEST(CheckForCrossContextObjectLiterals) {
v8::internal::V8::Initialize(NULL);
if (v8::internal::Snapshot::IsEnabled()) return;
v8::V8::Initialize();
const int nof = 2;
const char* sources[nof] = {
......
......@@ -55,6 +55,9 @@ for (i = 0; i < scripts.length; i++) {
// This has to be updated if the number of native scripts change.
assertEquals(12, native_count);
// If no snapshot is used, only the 'gc' extension is loaded.
// If snapshot is used, all extensions are cached in the snapshot.
assertTrue(extension_count == 1 || extension_count == 5);
assertEquals(2, normal_count); // This script and mjsunit.js.
// Test a builtins script.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment