diff options
Diffstat (limited to 'deps/v8/test/cctest')
-rw-r--r-- | deps/v8/test/cctest/test-api.cc | 34 | ||||
-rw-r--r-- | deps/v8/test/cctest/test-debug.cc | 33 | ||||
-rwxr-xr-x | deps/v8/test/cctest/test-macro-assembler-x64.cc | 12 |
3 files changed, 73 insertions, 6 deletions
diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index 6d6c174fd0..3e3c9578e3 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -447,6 +447,40 @@ THREADED_TEST(UsingExternalAsciiString) { } +THREADED_TEST(ScavengeExternalString) { + TestResource::dispose_count = 0; + { + 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); + i::Heap::CollectGarbage(0, i::NEW_SPACE); + CHECK(i::Heap::InNewSpace(*istring)); + CHECK_EQ(0, TestResource::dispose_count); + } + i::Heap::CollectGarbage(0, i::NEW_SPACE); + CHECK_EQ(1, TestResource::dispose_count); +} + + +THREADED_TEST(ScavengeExternalAsciiString) { + TestAsciiResource::dispose_count = 0; + { + 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); + i::Heap::CollectGarbage(0, i::NEW_SPACE); + CHECK(i::Heap::InNewSpace(*istring)); + CHECK_EQ(0, TestAsciiResource::dispose_count); + } + i::Heap::CollectGarbage(0, i::NEW_SPACE); + CHECK_EQ(1, TestAsciiResource::dispose_count); +} + + THREADED_TEST(StringConcat) { { v8::HandleScope scope; diff --git a/deps/v8/test/cctest/test-debug.cc b/deps/v8/test/cctest/test-debug.cc index 5b7219301e..cad1ba3ae5 100644 --- a/deps/v8/test/cctest/test-debug.cc +++ b/deps/v8/test/cctest/test-debug.cc @@ -3141,6 +3141,39 @@ TEST(DisableBreak) { CheckDebuggerUnloaded(); } +static const char* kSimpleExtensionSource = + "(function Foo() {" + " return 4;" + "})() "; + +// http://crbug.com/28933 +// Test that debug break is disabled when bootstrapper is active. +TEST(NoBreakWhenBootstrapping) { + v8::HandleScope scope; + + // Register a debug event listener which sets the break flag and counts. + v8::Debug::SetDebugEventListener(DebugEventCounter); + + // Set the debug break flag. + v8::Debug::DebugBreak(); + break_point_hit_count = 0; + { + // Create a context with an extension to make sure that some JavaScript + // code is executed during bootstrapping. + v8::RegisterExtension(new v8::Extension("simpletest", + kSimpleExtensionSource)); + const char* extension_names[] = { "simpletest" }; + v8::ExtensionConfiguration extensions(1, extension_names); + v8::Persistent<v8::Context> context = v8::Context::New(&extensions); + context.Dispose(); + } + // Check that no DebugBreak events occured during the context creation. + CHECK_EQ(0, break_point_hit_count); + + // Get rid of the debug event listener. + v8::Debug::SetDebugEventListener(NULL); + CheckDebuggerUnloaded(); +} static v8::Handle<v8::Array> NamedEnum(const v8::AccessorInfo&) { v8::Handle<v8::Array> result = v8::Array::New(3); diff --git a/deps/v8/test/cctest/test-macro-assembler-x64.cc b/deps/v8/test/cctest/test-macro-assembler-x64.cc index 511b933a50..3b8905bb7c 100755 --- a/deps/v8/test/cctest/test-macro-assembler-x64.cc +++ b/deps/v8/test/cctest/test-macro-assembler-x64.cc @@ -91,14 +91,14 @@ typedef int (*F0)(); TEST(Smi) { // Check that C++ Smi operations work as expected. - intptr_t test_numbers[] = { + int64_t test_numbers[] = { 0, 1, -1, 127, 128, -128, -129, 255, 256, -256, -257, - Smi::kMaxValue, static_cast<intptr_t>(Smi::kMaxValue) + 1, - Smi::kMinValue, static_cast<intptr_t>(Smi::kMinValue) - 1 + Smi::kMaxValue, static_cast<int64_t>(Smi::kMaxValue) + 1, + Smi::kMinValue, static_cast<int64_t>(Smi::kMinValue) - 1 }; int test_number_count = 15; for (int i = 0; i < test_number_count; i++) { - intptr_t number = test_numbers[i]; + int64_t number = test_numbers[i]; bool is_valid = Smi::IsValid(number); bool is_in_range = number >= Smi::kMinValue && number <= Smi::kMaxValue; CHECK_EQ(is_in_range, is_valid); @@ -108,8 +108,8 @@ TEST(Smi) { Smi* smi_from_int = Smi::FromInt(static_cast<int32_t>(number)); CHECK_EQ(smi_from_int, smi_from_intptr); } - int smi_value = smi_from_intptr->value(); - CHECK_EQ(number, static_cast<intptr_t>(smi_value)); + int64_t smi_value = smi_from_intptr->value(); + CHECK_EQ(number, smi_value); } } } |