Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 15724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15735 bool finished = false; | 15735 bool finished = false; |
| 15736 for (int i = 0; i < 200 && !finished; i++) { | 15736 for (int i = 0; i < 200 && !finished; i++) { |
| 15737 finished = env->GetIsolate()->IdleNotification(IdlePauseInMs); | 15737 finished = env->GetIsolate()->IdleNotification(IdlePauseInMs); |
| 15738 } | 15738 } |
| 15739 intptr_t final_size = CcTest::heap()->SizeOfObjects(); | 15739 intptr_t final_size = CcTest::heap()->SizeOfObjects(); |
| 15740 CHECK(finished); | 15740 CHECK(finished); |
| 15741 CHECK_LT(final_size, initial_size + 1); | 15741 CHECK_LT(final_size, initial_size + 1); |
| 15742 } | 15742 } |
| 15743 | 15743 |
| 15744 | 15744 |
| 15745 // Test that idle notification can be handled and eventually collects garbage. | |
| 15746 TEST(IdleNotificationWithSmallHint) { | |
| 15747 const intptr_t MB = 1024 * 1024; | |
| 15748 const int IdlePauseInMs = 900; | |
| 15749 LocalContext env; | |
| 15750 v8::HandleScope scope(env->GetIsolate()); | |
| 15751 intptr_t initial_size = CcTest::heap()->SizeOfObjects(); | |
| 15752 CreateGarbageInOldSpace(); | |
| 15753 intptr_t size_with_garbage = CcTest::heap()->SizeOfObjects(); | |
| 15754 CHECK_GT(size_with_garbage, initial_size + MB); | |
| 15755 bool finished = false; | |
| 15756 for (int i = 0; i < 200 && !finished; i++) { | |
| 15757 finished = env->GetIsolate()->IdleNotification(IdlePauseInMs); | |
| 15758 } | |
| 15759 intptr_t final_size = CcTest::heap()->SizeOfObjects(); | |
| 15760 CHECK(finished); | |
| 15761 CHECK_LT(final_size, initial_size + 1); | |
| 15762 } | |
| 15763 | |
|
Hannes Payer (out of office)
2015/03/23 10:55:25
These tests are identical and do not test anything
| |
| 15764 | |
| 15765 // Test that idle notification can be handled and eventually collects garbage. | |
| 15766 TEST(IdleNotificationWithLargeHint) { | |
| 15767 const intptr_t MB = 1024 * 1024; | |
| 15768 const int IdlePauseInMs = 900; | |
| 15769 LocalContext env; | |
| 15770 v8::HandleScope scope(env->GetIsolate()); | |
| 15771 intptr_t initial_size = CcTest::heap()->SizeOfObjects(); | |
| 15772 CreateGarbageInOldSpace(); | |
| 15773 intptr_t size_with_garbage = CcTest::heap()->SizeOfObjects(); | |
| 15774 CHECK_GT(size_with_garbage, initial_size + MB); | |
| 15775 bool finished = false; | |
| 15776 for (int i = 0; i < 200 && !finished; i++) { | |
| 15777 finished = env->GetIsolate()->IdleNotification(IdlePauseInMs); | |
| 15778 } | |
| 15779 intptr_t final_size = CcTest::heap()->SizeOfObjects(); | |
| 15780 CHECK(finished); | |
| 15781 CHECK_LT(final_size, initial_size + 1); | |
| 15782 } | |
| 15783 | |
| 15784 | |
| 15785 TEST(Regress2333) { | 15745 TEST(Regress2333) { |
| 15786 LocalContext env; | 15746 LocalContext env; |
| 15787 for (int i = 0; i < 3; i++) { | 15747 for (int i = 0; i < 3; i++) { |
| 15788 CcTest::heap()->CollectGarbage(i::NEW_SPACE); | 15748 CcTest::heap()->CollectGarbage(i::NEW_SPACE); |
| 15789 } | 15749 } |
| 15790 } | 15750 } |
| 15791 | 15751 |
| 15792 static uint32_t* stack_limit; | 15752 static uint32_t* stack_limit; |
| 15793 | 15753 |
| 15794 static void GetStackLimitCallback( | 15754 static void GetStackLimitCallback( |
| (...skipping 5839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 21634 } | 21594 } |
| 21635 { | 21595 { |
| 21636 v8::TryCatch try_catch; | 21596 v8::TryCatch try_catch; |
| 21637 uint16_t* data = reinterpret_cast<uint16_t*>(buffer); | 21597 uint16_t* data = reinterpret_cast<uint16_t*>(buffer); |
| 21638 CHECK(v8::String::NewFromTwoByte(isolate, data, v8::String::kNormalString, | 21598 CHECK(v8::String::NewFromTwoByte(isolate, data, v8::String::kNormalString, |
| 21639 length).IsEmpty()); | 21599 length).IsEmpty()); |
| 21640 CHECK(!try_catch.HasCaught()); | 21600 CHECK(!try_catch.HasCaught()); |
| 21641 } | 21601 } |
| 21642 free(buffer); | 21602 free(buffer); |
| 21643 } | 21603 } |
| OLD | NEW |