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
-~----------~----~----~----~------~----~------~--~---

Reply via email to