| Index: runtime/vm/code_descriptors_test.cc
|
| diff --git a/runtime/vm/code_descriptors_test.cc b/runtime/vm/code_descriptors_test.cc
|
| index 776d73ca354fbe3820b92714d98f1c951262de3e..30cedd4b73a91e4c42658cbb97fd93d17c795ac3 100644
|
| --- a/runtime/vm/code_descriptors_test.cc
|
| +++ b/runtime/vm/code_descriptors_test.cc
|
| @@ -316,4 +316,52 @@ TEST_CASE(DescriptorList_TokenPositions) {
|
| }
|
| }
|
|
|
| +
|
| +TEST_CASE(CodeSourceMap_TokenPositions) {
|
| + const intptr_t token_positions[] = {
|
| + kMinInt32,
|
| + 5,
|
| + 13,
|
| + 13,
|
| + 13,
|
| + 13,
|
| + 31,
|
| + 23,
|
| + 23,
|
| + 23,
|
| + 33,
|
| + 33,
|
| + 5,
|
| + 5,
|
| + Token::kMinSourcePos,
|
| + Token::kMaxSourcePos,
|
| + };
|
| + const intptr_t num_token_positions =
|
| + sizeof(token_positions) / sizeof(token_positions[0]);
|
| +
|
| + CodeSourceMapBuilder* builder = new CodeSourceMapBuilder();
|
| + ASSERT(builder != NULL);
|
| +
|
| + for (intptr_t i = 0; i < num_token_positions; i++) {
|
| + builder->AddEntry(i, token_positions[i]);
|
| + }
|
| +
|
| + const CodeSourceMap& code_Source_map =
|
| + CodeSourceMap::Handle(builder->Finalize());
|
| +
|
| + ASSERT(!code_Source_map.IsNull());
|
| + CodeSourceMap::Iterator it(code_Source_map);
|
| +
|
| + uintptr_t i = 0;
|
| + while (it.MoveNext()) {
|
| + EXPECT(it.PcOffset() == i);
|
| + if (token_positions[i] != it.TokenPos()) {
|
| + OS::Print("[%" Pd "]: Expected: %" Pd " != %" Pd "\n",
|
| + i, token_positions[i], it.TokenPos());
|
| + }
|
| + EXPECT(token_positions[i] == it.TokenPos());
|
| + i++;
|
| + }
|
| +}
|
| +
|
| } // namespace dart
|
|
|