Chromium Code Reviews| Index: runtime/vm/object_test.cc |
| diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc |
| index 8dbbb529db8c22ca3b45522c40a93d7e6c6833f6..4d4b92d6c5752b6e899b0a507dfbf50a604da9ad 100644 |
| --- a/runtime/vm/object_test.cc |
| +++ b/runtime/vm/object_test.cc |
| @@ -15,6 +15,7 @@ |
| #include "vm/simulator.h" |
| #include "vm/symbols.h" |
| #include "vm/unit_test.h" |
| +#include "vm/code_descriptors.h" |
| namespace dart { |
| @@ -2865,16 +2866,17 @@ TEST_CASE(ExceptionHandlers) { |
| TEST_CASE(PcDescriptors) { |
| - const int kNumEntries = 6; |
| - // Add PcDescriptors to the code. |
| + DescriptorList* builder = new DescriptorList(0); |
| + |
| + builder->AddDescriptor(RawPcDescriptors::kOther, 10, 1, 20, 1); |
| + builder->AddDescriptor(RawPcDescriptors::kDeopt, 20, 2, 30, 0); |
| + builder->AddDescriptor(RawPcDescriptors::kOther, 30, 3, 40, 1); |
| + builder->AddDescriptor(RawPcDescriptors::kOther, 10, 4, 40, 2); |
| + builder->AddDescriptor(RawPcDescriptors::kOther, 10, 5, 80, 3); |
| + builder->AddDescriptor(RawPcDescriptors::kOther, 80, 6, 150, 3); |
|
Florian Schneider
2015/05/11 11:10:56
Please add a few test cases with larger deltas is
rmacnak
2015/05/11 20:27:04
Done.
|
| + |
| PcDescriptors& descriptors = PcDescriptors::Handle(); |
| - descriptors ^= PcDescriptors::New(kNumEntries, true); |
| - descriptors.AddDescriptor(0, 10, RawPcDescriptors::kOther, 1, 20, 1); |
| - descriptors.AddDescriptor(1, 20, RawPcDescriptors::kDeopt, 2, 30, 0); |
| - descriptors.AddDescriptor(2, 30, RawPcDescriptors::kOther, 3, 40, 1); |
| - descriptors.AddDescriptor(3, 10, RawPcDescriptors::kOther, 4, 40, 2); |
| - descriptors.AddDescriptor(4, 10, RawPcDescriptors::kOther, 5, 80, 3); |
| - descriptors.AddDescriptor(5, 80, RawPcDescriptors::kOther, 6, 150, 3); |
| + descriptors ^= builder->FinalizePcDescriptors(0); |
| extern void GenerateIncrement(Assembler* assembler); |
| Assembler _assembler_; |
| @@ -2919,51 +2921,6 @@ TEST_CASE(PcDescriptors) { |
| } |
| -TEST_CASE(PcDescriptorsCompressed) { |
| - const int kNumEntries = 6; |
| - // Add PcDescriptors to the code. |
| - PcDescriptors& descriptors = PcDescriptors::Handle(); |
| - // PcDescriptors have no try-index. |
| - descriptors ^= PcDescriptors::New(kNumEntries, false); |
| - descriptors.AddDescriptor(0, 10, RawPcDescriptors::kOther, 1, 20, -1); |
| - descriptors.AddDescriptor(1, 20, RawPcDescriptors::kDeopt, 2, 30, -1); |
| - descriptors.AddDescriptor(2, 30, RawPcDescriptors::kOther, 3, 40, -1); |
| - descriptors.AddDescriptor(3, 10, RawPcDescriptors::kOther, 4, 40, -1); |
| - descriptors.AddDescriptor(4, 10, RawPcDescriptors::kOther, 5, 80, -1); |
| - descriptors.AddDescriptor(5, 80, RawPcDescriptors::kOther, 6, 150, -1); |
| - |
| - extern void GenerateIncrement(Assembler* assembler); |
| - Assembler _assembler_; |
| - GenerateIncrement(&_assembler_); |
| - Code& code = Code::Handle(Code::FinalizeCode( |
| - *CreateFunction("Test_Code"), &_assembler_)); |
| - code.set_pc_descriptors(descriptors); |
| - |
| - // Verify the PcDescriptor entries by accessing them. |
| - const PcDescriptors& pc_descs = PcDescriptors::Handle(code.pc_descriptors()); |
| - PcDescriptors::Iterator iter(pc_descs, RawPcDescriptors::kAnyKind); |
| - |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - EXPECT_EQ(static_cast<uword>(10), iter.PcOffset()); |
| - EXPECT_EQ(-1, iter.TryIndex()); |
| - EXPECT_EQ(1, iter.DeoptId()); |
| - EXPECT_EQ(20, iter.TokenPos()); |
| - |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - EXPECT_EQ(true, iter.MoveNext()); |
| - |
| - EXPECT_EQ(-1, iter.TryIndex()); |
| - EXPECT_EQ(static_cast<uword>(80), iter.PcOffset()); |
| - EXPECT_EQ(150, iter.TokenPos()); |
| - |
| - EXPECT_EQ(false, iter.MoveNext()); |
| -} |
| - |
| - |
| - |
| static RawClass* CreateTestClass(const char* name) { |
| const String& class_name = String::Handle(Symbols::New(name)); |
| const Class& cls = Class::Handle( |