Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: runtime/vm/code_descriptors_test.cc

Issue 2670843006: Encode inlining information in CodeSourceMap and remove inlining interval arrays. (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "platform/assert.h" 5 #include "platform/assert.h"
6 #include "vm/globals.h" 6 #include "vm/globals.h"
7 7
8 #include "vm/ast.h" 8 #include "vm/ast.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/code_descriptors.h" 10 #include "vm/code_descriptors.h"
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 while (it.MoveNext()) { 312 while (it.MoveNext()) {
313 if (token_positions[i] != it.TokenPos().value()) { 313 if (token_positions[i] != it.TokenPos().value()) {
314 OS::Print("[%" Pd "]: Expected: %" Pd " != %" Pd "\n", i, 314 OS::Print("[%" Pd "]: Expected: %" Pd " != %" Pd "\n", i,
315 token_positions[i], it.TokenPos().value()); 315 token_positions[i], it.TokenPos().value());
316 } 316 }
317 EXPECT(token_positions[i] == it.TokenPos().value()); 317 EXPECT(token_positions[i] == it.TokenPos().value());
318 i++; 318 i++;
319 } 319 }
320 } 320 }
321 321
322
323 TEST_CASE(CodeSourceMap_TokenPositions) {
324 const intptr_t token_positions[] = {
325 kMinInt32,
326 5,
327 13,
328 13,
329 13,
330 13,
331 31,
332 23,
333 23,
334 23,
335 33,
336 33,
337 5,
338 5,
339 TokenPosition::kMinSourcePos,
340 TokenPosition::kMaxSourcePos,
341 };
342 const intptr_t num_token_positions =
343 sizeof(token_positions) / sizeof(token_positions[0]);
344
345 CodeSourceMapBuilder* builder = new CodeSourceMapBuilder();
346 ASSERT(builder != NULL);
347
348 for (intptr_t i = 0; i < num_token_positions; i++) {
349 builder->AddEntry(i, TokenPosition(token_positions[i]));
350 }
351
352 const CodeSourceMap& code_Source_map =
353 CodeSourceMap::Handle(builder->Finalize());
354
355 ASSERT(!code_Source_map.IsNull());
356 CodeSourceMap::Iterator it(code_Source_map);
357
358 uintptr_t i = 0;
359 while (it.MoveNext()) {
360 EXPECT(it.PcOffset() == i);
361 if (token_positions[i] != it.TokenPos().value()) {
362 OS::Print("[%" Pd "]: Expected: %" Pd " != %" Pd "\n", i,
363 token_positions[i], it.TokenPos().value());
364 }
365 EXPECT(token_positions[i] == it.TokenPos().value());
366 i++;
367 }
368 }
369
370 } // namespace dart 322 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698