| Index: test/cctest/test-serialize.cc
|
| diff --git a/test/cctest/test-serialize.cc b/test/cctest/test-serialize.cc
|
| index 4c6e6231d6cff658d8242b2ef42fcc198ab20046..354bc7c3ed5b17f9e0638bbdc7f4f8a3c42349c4 100644
|
| --- a/test/cctest/test-serialize.cc
|
| +++ b/test/cctest/test-serialize.cc
|
| @@ -156,6 +156,23 @@ static void Serialize(v8::Isolate* isolate) {
|
| }
|
|
|
|
|
| +Vector<const uint8_t> ConstructSource(Vector<const uint8_t> head,
|
| + Vector<const uint8_t> body,
|
| + Vector<const uint8_t> tail, int repeats) {
|
| + int source_length = head.length() + body.length() * repeats + tail.length();
|
| + uint8_t* source = NewArray<uint8_t>(static_cast<size_t>(source_length));
|
| + CopyChars(source, head.start(), head.length());
|
| + for (int i = 0; i < repeats; i++) {
|
| + CopyChars(source + head.length() + i * body.length(), body.start(),
|
| + body.length());
|
| + }
|
| + CopyChars(source + head.length() + repeats * body.length(), tail.start(),
|
| + tail.length());
|
| + return Vector<const uint8_t>(const_cast<const uint8_t*>(source),
|
| + source_length);
|
| +}
|
| +
|
| +
|
| // Test that the whole heap can be serialized.
|
| UNINITIALIZED_TEST(Serialize) {
|
| if (!Snapshot::HaveASnapshotToStartFrom()) {
|
| @@ -546,7 +563,6 @@ UNINITIALIZED_TEST(CustomContextSerialization) {
|
| params.enable_serializer = true;
|
| v8::Isolate* v8_isolate = v8::Isolate::New(params);
|
| Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate);
|
| - Heap* heap = isolate->heap();
|
| {
|
| v8::Isolate::Scope isolate_scope(v8_isolate);
|
|
|
| @@ -569,6 +585,16 @@ UNINITIALIZED_TEST(CustomContextSerialization) {
|
| "var r = Math.random() + Math.cos(0);"
|
| "var f = (function(a, b) { return a + b; }).bind(1, 2, 3);"
|
| "var s = parseInt('12345');");
|
| +
|
| + Vector<const uint8_t> source = ConstructSource(
|
| + STATIC_CHAR_VECTOR("function g() { return [,"),
|
| + STATIC_CHAR_VECTOR("1,"),
|
| + STATIC_CHAR_VECTOR("];} a = g(); b = g(); b.push(1);"), 100000);
|
| + v8::Handle<v8::String> source_str = v8::String::NewFromOneByte(
|
| + v8_isolate, source.start(), v8::String::kNormalString,
|
| + source.length());
|
| + CompileRun(source_str);
|
| + source.Dispose();
|
| }
|
| // Make sure all builtin scripts are cached.
|
| {
|
| @@ -579,7 +605,7 @@ UNINITIALIZED_TEST(CustomContextSerialization) {
|
| }
|
| // If we don't do this then we end up with a stray root pointing at the
|
| // context even after we have disposed of env.
|
| - heap->CollectAllGarbage(Heap::kNoGCFlags);
|
| + isolate->heap()->CollectAllAvailableGarbage("snapshotting");
|
|
|
| int file_name_length = StrLength(FLAG_testing_serialization_file) + 10;
|
| Vector<char> startup_name = Vector<char>::New(file_name_length + 1);
|
| @@ -667,6 +693,10 @@ UNINITIALIZED_DEPENDENT_TEST(CustomContextDeserialization,
|
| CHECK_EQ(5, f);
|
| v8::Handle<v8::String> s = CompileRun("s")->ToString(v8_isolate);
|
| CHECK(s->Equals(v8_str("12345")));
|
| + int a = CompileRun("a.length")->ToNumber(v8_isolate)->Int32Value();
|
| + CHECK_EQ(100001, a);
|
| + int b = CompileRun("b.length")->ToNumber(v8_isolate)->Int32Value();
|
| + CHECK_EQ(100002, b);
|
| }
|
| }
|
| v8_isolate->Dispose();
|
| @@ -819,23 +849,6 @@ TEST(SerializeToplevelInternalizedString) {
|
| }
|
|
|
|
|
| -Vector<const uint8_t> ConstructSource(Vector<const uint8_t> head,
|
| - Vector<const uint8_t> body,
|
| - Vector<const uint8_t> tail, int repeats) {
|
| - int source_length = head.length() + body.length() * repeats + tail.length();
|
| - uint8_t* source = NewArray<uint8_t>(static_cast<size_t>(source_length));
|
| - CopyChars(source, head.start(), head.length());
|
| - for (int i = 0; i < repeats; i++) {
|
| - CopyChars(source + head.length() + i * body.length(), body.start(),
|
| - body.length());
|
| - }
|
| - CopyChars(source + head.length() + repeats * body.length(), tail.start(),
|
| - tail.length());
|
| - return Vector<const uint8_t>(const_cast<const uint8_t*>(source),
|
| - source_length);
|
| -}
|
| -
|
| -
|
| TEST(SerializeToplevelLargeCodeObject) {
|
| FLAG_serialize_toplevel = true;
|
| LocalContext context;
|
|
|