LGTM. On Wed, Jun 3, 2009 at 1:58 PM, <[email protected]> wrote: > > Reviewers: Kasper Lund, > > Description: > Fix flakyness in tests: make sure to garbage collect temporary test > external strings so that they are not disposed when running other > tests that rely on only one external string being disposed during its > run. > > > Please review this at http://codereview.chromium.org/118158 > > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ > > Affected files: > M test/cctest/test-api.cc > > > Index: test/cctest/test-api.cc > =================================================================== > --- test/cctest/test-api.cc (revision 2025) > +++ test/cctest/test-api.cc (working copy) > @@ -538,29 +538,35 @@ > > > THREADED_TEST(UsingExternalString) { > - v8::HandleScope scope; > - uint16_t* two_byte_string = AsciiToTwoByteString("test string"); > - Local<String> string = String::NewExternal(new > TestResource(two_byte_string)); > - i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); > - // Trigger GCs so that the newly allocated string moves to old gen. > - i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now > - i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now > - i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); > - CHECK(isymbol->IsSymbol()); > + { > + v8::HandleScope scope; > + uint16_t* two_byte_string = AsciiToTwoByteString("test string"); > + Local<String> string = > + String::NewExternal(new TestResource(two_byte_string)); > + i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); > + // Trigger GCs so that the newly allocated string moves to old gen. > + i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now > + i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now > + i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); > + CHECK(isymbol->IsSymbol()); > + } > } > > > THREADED_TEST(UsingExternalAsciiString) { > - v8::HandleScope scope; > - const char* one_byte_string = "test string"; > - Local<String> string = String::NewExternal( > - new TestAsciiResource(i::StrDup(one_byte_string))); > - i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); > - // Trigger GCs so that the newly allocated string moves to old gen. > - i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now > - i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now > - i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); > - CHECK(isymbol->IsSymbol()); > + { > + v8::HandleScope scope; > + const char* one_byte_string = "test string"; > + Local<String> string = String::NewExternal( > + new TestAsciiResource(i::StrDup(one_byte_string))); > + i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); > + // Trigger GCs so that the newly allocated string moves to old gen. > + i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now > + i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now > + i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); > + CHECK(isymbol->IsSymbol()); > + } > + i::Heap::CollectAllGarbage(); > } > > > > > > > >
--~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
