diff options
author | 2017-07-24 21:00:39 +0000 | |
---|---|---|
committer | 2017-07-24 21:00:39 +0000 | |
commit | b67d0c0fcef5e76e579246d48ec005fe31e64f97 (patch) | |
tree | 343117b8181faeed565ff244c5dedc9d0a8d1775 /runtime/interpreter/unstarted_runtime_test.cc | |
parent | 2ae4bc9f5b620bc768e4ae2ecab641a06a488a70 (diff) | |
parent | cade5c3c75588da6d873df727acdaf3378a66efa (diff) |
Merge changes I87b3fcb3,I971edf31,I5218a57c
* changes:
Track class initializing in transaction
Move transaction creation to runtime
Test case for clinit support in app image
Diffstat (limited to 'runtime/interpreter/unstarted_runtime_test.cc')
-rw-r--r-- | runtime/interpreter/unstarted_runtime_test.cc | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/runtime/interpreter/unstarted_runtime_test.cc b/runtime/interpreter/unstarted_runtime_test.cc index 3461a6503a..87fa8beb01 100644 --- a/runtime/interpreter/unstarted_runtime_test.cc +++ b/runtime/interpreter/unstarted_runtime_test.cc @@ -780,44 +780,40 @@ TEST_F(UnstartedRuntimeTest, ToLowerUpper) { { JValue result; tmp->SetVReg(0, static_cast<int32_t>(i)); - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedCharacterToLowerCase(self, tmp, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); } { JValue result; tmp->SetVReg(0, static_cast<int32_t>(i)); - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedCharacterToUpperCase(self, tmp, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); } } for (uint64_t i = 256; i <= std::numeric_limits<uint32_t>::max(); i <<= 1) { { JValue result; tmp->SetVReg(0, static_cast<int32_t>(i)); - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedCharacterToLowerCase(self, tmp, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); } { JValue result; tmp->SetVReg(0, static_cast<int32_t>(i)); - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedCharacterToUpperCase(self, tmp, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); } } @@ -996,12 +992,11 @@ TEST_F(UnstartedRuntimeTest, ThreadLocalGet) { ShadowFrame* caller_frame = ShadowFrame::CreateDeoptimizedFrame(10, nullptr, caller_method, 0); shadow_frame->SetLink(caller_frame); - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedThreadLocalGet(self, shadow_frame, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); self->ClearException(); ShadowFrame::DeleteDeoptimizedFrame(caller_frame); @@ -1066,12 +1061,11 @@ TEST_F(UnstartedRuntimeTest, ThreadCurrentThread) { PrepareForAborts(); { - Transaction transaction; - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); UnstartedThreadCurrentThread(self, shadow_frame, &result, 0); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); Runtime::Current()->ExitTransactionMode(); ASSERT_TRUE(self->IsExceptionPending()); - ASSERT_TRUE(transaction.IsAborted()); self->ClearException(); } @@ -1138,28 +1132,27 @@ class UnstartedClassForNameTest : public UnstartedRuntimeTest { mirror::String* name_string = mirror::String::AllocFromModifiedUtf8(self, name); CHECK(name_string != nullptr); - Transaction transaction; if (in_transaction) { - Runtime::Current()->EnterTransactionMode(&transaction); + Runtime::Current()->EnterTransactionMode(); } CHECK(!self->IsExceptionPending()); runner(self, shadow_frame, name_string, &result); - if (in_transaction) { - Runtime::Current()->ExitTransactionMode(); - } - if (should_succeed) { CHECK(!self->IsExceptionPending()) << name << " " << self->GetException()->Dump(); CHECK(result.GetL() != nullptr) << name; } else { CHECK(self->IsExceptionPending()) << name; if (in_transaction) { - ASSERT_TRUE(transaction.IsAborted()); + ASSERT_TRUE(Runtime::Current()->IsTransactionAborted()); } self->ClearException(); } + + if (in_transaction) { + Runtime::Current()->ExitTransactionMode(); + } } ShadowFrame::DeleteDeoptimizedFrame(shadow_frame); |