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

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

Issue 12317117: Corrected test suppression from previous CL. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « runtime/tests/vm/vm.status ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "include/dart_debugger_api.h" 5 #include "include/dart_debugger_api.h"
6 #include "platform/assert.h" 6 #include "platform/assert.h"
7 #include "vm/dart_api_impl.h" 7 #include "vm/dart_api_impl.h"
8 #include "vm/thread.h" 8 #include "vm/thread.h"
9 #include "vm/unit_test.h" 9 #include "vm/unit_test.h"
10 10
(...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1226 { 1226 {
1227 MonitorLocker ml(sync); 1227 MonitorLocker ml(sync);
1228 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) { 1228 while (interrupt_isolate_id != ILLEGAL_ISOLATE_ID) {
1229 ml.Wait(); 1229 ml.Wait();
1230 } 1230 }
1231 } 1231 }
1232 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID); 1232 EXPECT(interrupt_isolate_id == ILLEGAL_ISOLATE_ID);
1233 } 1233 }
1234 1234
1235 1235
1236 // TODO(tball): enable once problem with context variables is 1236 static void StackTraceDump1BreakpointHandler(Dart_IsolateId isolate_id,
1237 // fixed, where frame_ctx_level is sometimes off by 1 (issues 8593 and 8594) 1237 Dart_Breakpoint bpt,
1238 //static void StackTraceDump1BreakpointHandler(Dart_IsolateId isolate_id, 1238 Dart_StackTrace trace) {
1239 // Dart_Breakpoint bpt, 1239 const int kStackTraceLen = 4;
1240 // Dart_StackTrace trace) { 1240 static const char* expected_trace[kStackTraceLen] = {
1241 // const int kStackTraceLen = 4; 1241 "local_to_main",
1242 // static const char* expected_trace[kStackTraceLen] = { 1242 "Test.local1_to_func1",
1243 // "local_to_main", 1243 "Test.func1",
1244 // "Test.local1_to_func1", 1244 "main"
1245 // "Test.func1", 1245 };
1246 // "main" 1246
1247 // }; 1247 intptr_t trace_len;
1248 // 1248 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
1249 // intptr_t trace_len; 1249 EXPECT_VALID(res);
1250 // Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 1250 EXPECT_EQ(kStackTraceLen, trace_len);
1251 // EXPECT_VALID(res); 1251
1252 // EXPECT_EQ(kStackTraceLen, trace_len); 1252 // Frame 0 corresponding to "local_to_main".
1253 // 1253 Dart_Handle frame0_locals = Dart_NewList(8);
1254 // // Frame 0 corresponding to "local_to_main". 1254 Dart_ListSetAt(frame0_locals, 0, NewString("i"));
1255 // Dart_Handle frame0_locals = Dart_NewList(8); 1255 Dart_ListSetAt(frame0_locals, 1, Dart_NewInteger(76));
1256 // Dart_ListSetAt(frame0_locals, 0, NewString("i")); 1256 Dart_ListSetAt(frame0_locals, 2, NewString("j"));
1257 // Dart_ListSetAt(frame0_locals, 1, Dart_NewInteger(76)); 1257 Dart_ListSetAt(frame0_locals, 3, Dart_NewInteger(119));
1258 // Dart_ListSetAt(frame0_locals, 2, NewString("j")); 1258 Dart_ListSetAt(frame0_locals, 4, NewString("k"));
1259 // Dart_ListSetAt(frame0_locals, 3, Dart_NewInteger(119)); 1259 Dart_ListSetAt(frame0_locals, 5, Dart_NewInteger(66));
1260 // Dart_ListSetAt(frame0_locals, 4, NewString("k")); 1260 Dart_ListSetAt(frame0_locals, 6, NewString("l"));
1261 // Dart_ListSetAt(frame0_locals, 5, Dart_NewInteger(66)); 1261 Dart_ListSetAt(frame0_locals, 7, Dart_NewInteger(99));
1262 // Dart_ListSetAt(frame0_locals, 6, NewString("l")); 1262
1263 // Dart_ListSetAt(frame0_locals, 7, Dart_NewInteger(99)); 1263 // Frame 1 corresponding to "Test.local1_to_func1".
1264 // 1264 Dart_Handle frame1_locals = Dart_NewList(14);
1265 // // Frame 1 corresponding to "Test.local1_to_func1". 1265 Dart_ListSetAt(frame1_locals, 0, NewString("i"));
1266 // Dart_Handle frame1_locals = Dart_NewList(14); 1266 Dart_ListSetAt(frame1_locals, 1, Dart_NewInteger(11));
1267 // Dart_ListSetAt(frame1_locals, 0, NewString("i")); 1267 Dart_ListSetAt(frame1_locals, 2, NewString("j"));
1268 // Dart_ListSetAt(frame1_locals, 1, Dart_NewInteger(11)); 1268 Dart_ListSetAt(frame1_locals, 3, Dart_NewInteger(22));
1269 // Dart_ListSetAt(frame1_locals, 2, NewString("j")); 1269 Dart_ListSetAt(frame1_locals, 4, NewString("k"));
1270 // Dart_ListSetAt(frame1_locals, 3, Dart_NewInteger(22)); 1270 Dart_ListSetAt(frame1_locals, 5, Dart_NewInteger(33));
1271 // Dart_ListSetAt(frame1_locals, 4, NewString("k")); 1271 Dart_ListSetAt(frame1_locals, 6, NewString("l"));
1272 // Dart_ListSetAt(frame1_locals, 5, Dart_NewInteger(33)); 1272 Dart_ListSetAt(frame1_locals, 7, Dart_NewInteger(44));
1273 // Dart_ListSetAt(frame1_locals, 6, NewString("l")); 1273 Dart_ListSetAt(frame1_locals, 8, NewString("m"));
1274 // Dart_ListSetAt(frame1_locals, 7, Dart_NewInteger(44)); 1274 Dart_ListSetAt(frame1_locals, 9, Dart_NewInteger(55));
1275 // Dart_ListSetAt(frame1_locals, 8, NewString("m")); 1275 Dart_ListSetAt(frame1_locals, 10, NewString("func"));
1276 // Dart_ListSetAt(frame1_locals, 9, Dart_NewInteger(55)); 1276 Dart_ListSetAt(frame1_locals, 11, Dart_Null());
1277 // Dart_ListSetAt(frame1_locals, 10, NewString("func")); 1277 Dart_ListSetAt(frame1_locals, 12, NewString("n"));
1278 // Dart_ListSetAt(frame1_locals, 11, Dart_Null()); 1278 Dart_ListSetAt(frame1_locals, 13, Dart_Null());
1279 // Dart_ListSetAt(frame1_locals, 12, NewString("n")); 1279
1280 // Dart_ListSetAt(frame1_locals, 13, Dart_Null()); 1280 // Frame 2 corresponding to "Test.func1".
1281 // 1281 Dart_Handle frame2_locals = Dart_NewList(18);
1282 // // Frame 2 corresponding to "Test.func1". 1282 Dart_ListSetAt(frame2_locals, 0, NewString("this"));
1283 // Dart_Handle frame2_locals = Dart_NewList(18); 1283 Dart_ListSetAt(frame2_locals, 1, Dart_Null());
1284 // Dart_ListSetAt(frame2_locals, 0, NewString("this")); 1284 Dart_ListSetAt(frame2_locals, 2, NewString("func"));
1285 // Dart_ListSetAt(frame2_locals, 1, Dart_Null()); 1285 Dart_ListSetAt(frame2_locals, 3, Dart_Null());
1286 // Dart_ListSetAt(frame2_locals, 2, NewString("func")); 1286 Dart_ListSetAt(frame2_locals, 4, NewString("i"));
1287 // Dart_ListSetAt(frame2_locals, 3, Dart_Null()); 1287 Dart_ListSetAt(frame2_locals, 5, Dart_NewInteger(11));
1288 // Dart_ListSetAt(frame2_locals, 4, NewString("i")); 1288 Dart_ListSetAt(frame2_locals, 6, NewString("j"));
1289 // Dart_ListSetAt(frame2_locals, 5, Dart_NewInteger(11)); 1289 Dart_ListSetAt(frame2_locals, 7, Dart_NewInteger(22));
1290 // Dart_ListSetAt(frame2_locals, 6, NewString("j")); 1290 Dart_ListSetAt(frame2_locals, 8, NewString("k"));
1291 // Dart_ListSetAt(frame2_locals, 7, Dart_NewInteger(22)); 1291 Dart_ListSetAt(frame2_locals, 9, Dart_NewInteger(33));
1292 // Dart_ListSetAt(frame2_locals, 8, NewString("k")); 1292 Dart_ListSetAt(frame2_locals, 10, NewString("l"));
1293 // Dart_ListSetAt(frame2_locals, 9, Dart_NewInteger(33)); 1293 Dart_ListSetAt(frame2_locals, 11, Dart_NewInteger(44));
1294 // Dart_ListSetAt(frame2_locals, 10, NewString("l")); 1294 Dart_ListSetAt(frame2_locals, 12, NewString("m"));
1295 // Dart_ListSetAt(frame2_locals, 11, Dart_NewInteger(44)); 1295 Dart_ListSetAt(frame2_locals, 13, Dart_NewInteger(55));
1296 // Dart_ListSetAt(frame2_locals, 12, NewString("m")); 1296 Dart_ListSetAt(frame2_locals, 14, NewString("local1_to_func1"));
1297 // Dart_ListSetAt(frame2_locals, 13, Dart_NewInteger(55)); 1297 Dart_ListSetAt(frame2_locals, 15, Dart_Null());
1298 // Dart_ListSetAt(frame2_locals, 14, NewString("local1_to_func1")); 1298 Dart_ListSetAt(frame2_locals, 16, NewString("sum"));
1299 // Dart_ListSetAt(frame2_locals, 15, Dart_Null()); 1299 Dart_ListSetAt(frame2_locals, 17, Dart_NewInteger(0));
1300 // Dart_ListSetAt(frame2_locals, 16, NewString("sum")); 1300
1301 // Dart_ListSetAt(frame2_locals, 17, Dart_NewInteger(0)); 1301 // Frame 3 corresponding to "main".
1302 // 1302 Dart_Handle frame3_locals = Dart_NewList(14);
1303 // // Frame 3 corresponding to "main". 1303 Dart_ListSetAt(frame3_locals, 0, NewString("i"));
1304 // Dart_Handle frame3_locals = Dart_NewList(14); 1304 Dart_ListSetAt(frame3_locals, 1, Dart_NewInteger(76));
1305 // Dart_ListSetAt(frame3_locals, 0, NewString("i")); 1305 Dart_ListSetAt(frame3_locals, 2, NewString("j"));
1306 // Dart_ListSetAt(frame3_locals, 1, Dart_NewInteger(76)); 1306 Dart_ListSetAt(frame3_locals, 3, Dart_NewInteger(119));
1307 // Dart_ListSetAt(frame3_locals, 2, NewString("j")); 1307 Dart_ListSetAt(frame3_locals, 4, NewString("local_to_main"));
1308 // Dart_ListSetAt(frame3_locals, 3, Dart_NewInteger(119)); 1308 Dart_ListSetAt(frame3_locals, 5, Dart_Null());
1309 // Dart_ListSetAt(frame3_locals, 4, NewString("local_to_main")); 1309 Dart_ListSetAt(frame3_locals, 6, NewString("sum"));
1310 // Dart_ListSetAt(frame3_locals, 5, Dart_Null()); 1310 Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(0));
1311 // Dart_ListSetAt(frame3_locals, 6, NewString("sum")); 1311 Dart_ListSetAt(frame3_locals, 8, NewString("value"));
1312 // Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(0)); 1312 Dart_ListSetAt(frame3_locals, 9, Dart_Null());
1313 // Dart_ListSetAt(frame3_locals, 8, NewString("value")); 1313 Dart_ListSetAt(frame3_locals, 10, NewString("func1"));
1314 // Dart_ListSetAt(frame3_locals, 9, Dart_Null()); 1314 Dart_ListSetAt(frame3_locals, 11, Dart_Null());
1315 // Dart_ListSetAt(frame3_locals, 10, NewString("func1")); 1315 Dart_ListSetAt(frame3_locals, 12, NewString("main_local"));
1316 // Dart_ListSetAt(frame3_locals, 11, Dart_Null()); 1316 Dart_ListSetAt(frame3_locals, 13, Dart_Null());
1317 // Dart_ListSetAt(frame3_locals, 12, NewString("main_local")); 1317
1318 // Dart_ListSetAt(frame3_locals, 13, Dart_Null()); 1318 Dart_Handle expected_locals[] = {
1319 // 1319 frame0_locals,
1320 // Dart_Handle expected_locals[] = { 1320 frame1_locals,
1321 // frame0_locals, 1321 frame2_locals,
1322 // frame1_locals, 1322 frame3_locals
1323 // frame2_locals, 1323 };
1324 // frame3_locals 1324 breakpoint_hit_counter++;
1325 // }; 1325 VerifyStackTrace(trace, expected_trace, expected_locals,
1326 // breakpoint_hit_counter++; 1326 kStackTraceLen, true);
1327 // VerifyStackTrace(trace, expected_trace, expected_locals, 1327 }
1328 // kStackTraceLen, true); 1328
1329 //} 1329
1330 1330 TEST_CASE(Debug_StackTraceDump1) {
1331 1331 const char* kScriptChars =
1332 // TODO(tball): enable once problem with context variables is 1332 "class Test {\n"
1333 // fixed, where frame_ctx_level is sometimes off by 1 (issues 8593 and 8594) 1333 " Test(int local);\n"
1334 //TEST_CASE(Debug_StackTraceDump1) { 1334 "\n"
1335 // const char* kScriptChars = 1335 " int func1(int func(int i, int j)) {\n"
1336 // "class Test {\n" 1336 " var i = 0;\n"
1337 // " Test(int local);\n" 1337 " var j = 0;\n"
1338 // "\n" 1338 " var k = 0;\n"
1339 // " int func1(int func(int i, int j)) {\n" 1339 " var l = 0;\n"
1340 // " var i = 0;\n" 1340 " var m = 0;\n"
1341 // " var j = 0;\n" 1341 " int local1_to_func1(int func(int i, int j)) {\n"
1342 // " var k = 0;\n" 1342 " // Capture i and j here.\n"
1343 // " var l = 0;\n" 1343 " i = 11;\n"
1344 // " var m = 0;\n" 1344 " j = 22;\n"
1345 // " int local1_to_func1(int func(int i, int j)) {\n" 1345 " k = 33;\n"
1346 // " // Capture i and j here.\n" 1346 " l = 44;\n"
1347 // " i = 11;\n" 1347 " m = 55;\n"
1348 // " j = 22;\n" 1348 " var n = func(i + j + k, l + m);\n"
1349 // " k = 33;\n" 1349 " return n;\n"
1350 // " l = 44;\n" 1350 " }\n"
1351 // " m = 55;\n" 1351 " var sum = 0;\n"
1352 // " var n = func(i + j + k, l + m);\n" 1352 " return local1_to_func1(func);\n"
1353 // " return n;\n" 1353 " }\n"
1354 // " }\n" 1354 "\n"
1355 // " var sum = 0;\n" 1355 " int local;\n"
1356 // " return local1_to_func1(func);\n" 1356 "}\n"
1357 // " }\n" 1357 "\n"
1358 // "\n" 1358 "int main() {\n"
1359 // " int local;\n" 1359 " var i = 10;\n"
1360 // "}\n" 1360 " var j = 20;\n"
1361 // "\n" 1361 " int local_to_main(int k, int l) {\n"
1362 // "int main() {\n" 1362 " // Capture i and j here.\n"
1363 // " var i = 10;\n" 1363 " i = i + k;\n"
1364 // " var j = 20;\n" 1364 " j = j + l;\n"
1365 // " int local_to_main(int k, int l) {\n" 1365 " return i + j;\n"
1366 // " // Capture i and j here.\n" 1366 " }\n"
1367 // " i = i + k;\n" 1367 " var sum = 0;\n"
1368 // " j = j + l;\n" 1368 " Test value = new Test(10);\n"
1369 // " return i + j;\n" 1369 " var func1 = value.func1;\n"
1370 // " }\n" 1370 " var main_local = local_to_main;\n"
1371 // " var sum = 0;\n" 1371 " return func1(main_local);\n"
1372 // " Test value = new Test(10);\n" 1372 "}\n";
1373 // " var func1 = value.func1;\n" 1373
1374 // " var main_local = local_to_main;\n" 1374 LoadScript(kScriptChars);
1375 // " return func1(main_local);\n" 1375 Dart_SetBreakpointHandler(&StackTraceDump1BreakpointHandler);
1376 // "}\n"; 1376
1377 // 1377 Dart_Handle script_url = NewString(TestCase::url());
1378 // LoadScript(kScriptChars); 1378 intptr_t line_no = 34; // In closure 'local_to_main'.
1379 // Dart_SetBreakpointHandler(&StackTraceDump1BreakpointHandler); 1379 Dart_Handle res = Dart_SetBreakpoint(script_url, line_no);
1380 // 1380 EXPECT_VALID(res);
1381 // Dart_Handle script_url = NewString(TestCase::url()); 1381 EXPECT(Dart_IsInteger(res));
1382 // intptr_t line_no = 34; // In closure 'local_to_main'. 1382
1383 // Dart_Handle res = Dart_SetBreakpoint(script_url, line_no); 1383 breakpoint_hit_counter = 0;
1384 // EXPECT_VALID(res); 1384 Dart_Handle retval = Invoke("main");
1385 // EXPECT(Dart_IsInteger(res)); 1385 EXPECT_VALID(retval);
1386 // 1386 int64_t int_value = 0;
1387 // breakpoint_hit_counter = 0; 1387 Dart_IntegerToInt64(retval, &int_value);
1388 // Dart_Handle retval = Invoke("main"); 1388 EXPECT_EQ(195, int_value);
1389 // EXPECT_VALID(retval); 1389 EXPECT_EQ(1, breakpoint_hit_counter);
1390 // int64_t int_value = 0; 1390 }
1391 // Dart_IntegerToInt64(retval, &int_value); 1391
1392 // EXPECT_EQ(195, int_value); 1392
1393 // EXPECT_EQ(1, breakpoint_hit_counter); 1393 static void StackTraceDump2ExceptionHandler(Dart_IsolateId isolate_id,
1394 //} 1394 Dart_Handle exception_object,
1395 1395 Dart_StackTrace trace) {
1396 1396 const int kStackTraceLen = 5;
1397 // TODO(tball): enable once problem with context variables is 1397 static const char* expected_trace[kStackTraceLen] = {
1398 // fixed, where frame_ctx_level is sometimes off by 1 (issues 8593 and 8594) 1398 "Object._noSuchMethod",
1399 //static void StackTraceDump2ExceptionHandler(Dart_IsolateId isolate_id, 1399 "Object.noSuchMethod",
1400 // Dart_Handle exception_object, 1400 "Test.local1_to_func1",
1401 // Dart_StackTrace trace) { 1401 "Test.func1",
1402 // const int kStackTraceLen = 5; 1402 "main"
1403 // static const char* expected_trace[kStackTraceLen] = { 1403 };
1404 // "Object._noSuchMethod", 1404
1405 // "Object.noSuchMethod", 1405 intptr_t trace_len;
1406 // "Test.local1_to_func1", 1406 Dart_Handle res = Dart_StackTraceLength(trace, &trace_len);
1407 // "Test.func1", 1407 EXPECT_VALID(res);
1408 // "main" 1408 EXPECT_EQ(kStackTraceLen, trace_len);
1409 // }; 1409
1410 // 1410 // Frame 0 corresponding to "Object._noSuchMethod".
1411 // intptr_t trace_len; 1411 Dart_Handle frame0_locals = Dart_NewList(12);
1412 // Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); 1412 Dart_ListSetAt(frame0_locals, 0, NewString("this"));
1413 // EXPECT_VALID(res); 1413 Dart_ListSetAt(frame0_locals, 1, Dart_Null());
1414 // EXPECT_EQ(kStackTraceLen, trace_len); 1414 Dart_ListSetAt(frame0_locals, 2, NewString("isMethod"));
1415 // 1415 Dart_ListSetAt(frame0_locals, 3, Dart_Null());
1416 // // Frame 0 corresponding to "Object._noSuchMethod". 1416 Dart_ListSetAt(frame0_locals, 4, NewString("memberName"));
1417 // Dart_Handle frame0_locals = Dart_NewList(12); 1417 Dart_ListSetAt(frame0_locals, 5, Dart_Null());
1418 // Dart_ListSetAt(frame0_locals, 0, NewString("this")); 1418 Dart_ListSetAt(frame0_locals, 6, NewString("type"));
1419 // Dart_ListSetAt(frame0_locals, 1, Dart_Null()); 1419 Dart_ListSetAt(frame0_locals, 7, Dart_Null());
1420 // Dart_ListSetAt(frame0_locals, 2, NewString("isMethod")); 1420 Dart_ListSetAt(frame0_locals, 8, NewString("arguments"));
1421 // Dart_ListSetAt(frame0_locals, 3, Dart_Null()); 1421 Dart_ListSetAt(frame0_locals, 9, Dart_Null());
1422 // Dart_ListSetAt(frame0_locals, 4, NewString("memberName")); 1422 Dart_ListSetAt(frame0_locals, 10, NewString("namedArguments"));
1423 // Dart_ListSetAt(frame0_locals, 5, Dart_Null()); 1423 Dart_ListSetAt(frame0_locals, 11, Dart_Null());
1424 // Dart_ListSetAt(frame0_locals, 6, NewString("type")); 1424
1425 // Dart_ListSetAt(frame0_locals, 7, Dart_Null()); 1425 // Frame 1 corresponding to "Object.noSuchMethod".
1426 // Dart_ListSetAt(frame0_locals, 8, NewString("arguments")); 1426 Dart_Handle frame1_locals = Dart_NewList(4);
1427 // Dart_ListSetAt(frame0_locals, 9, Dart_Null()); 1427 Dart_ListSetAt(frame1_locals, 0, NewString("this"));
1428 // Dart_ListSetAt(frame0_locals, 10, NewString("namedArguments")); 1428 Dart_ListSetAt(frame1_locals, 1, Dart_Null());
1429 // Dart_ListSetAt(frame0_locals, 11, Dart_Null()); 1429 Dart_ListSetAt(frame1_locals, 2, NewString("invocation"));
1430 // 1430 Dart_ListSetAt(frame1_locals, 3, Dart_Null());
1431 // // Frame 1 corresponding to "Object.noSuchMethod". 1431
1432 // Dart_Handle frame1_locals = Dart_NewList(4); 1432 // Frame 2 corresponding to "Test.local1_to_func1".
1433 // Dart_ListSetAt(frame1_locals, 0, NewString("this")); 1433 Dart_Handle frame2_locals = Dart_NewList(16);
1434 // Dart_ListSetAt(frame1_locals, 1, Dart_Null()); 1434 Dart_ListSetAt(frame2_locals, 0, NewString("i"));
1435 // Dart_ListSetAt(frame1_locals, 2, NewString("invocation")); 1435 Dart_ListSetAt(frame2_locals, 1, Dart_NewInteger(11));
1436 // Dart_ListSetAt(frame1_locals, 3, Dart_Null()); 1436 Dart_ListSetAt(frame2_locals, 2, NewString("j"));
1437 // 1437 Dart_ListSetAt(frame2_locals, 3, Dart_NewInteger(22));
1438 // // Frame 2 corresponding to "Test.local1_to_func1". 1438 Dart_ListSetAt(frame2_locals, 4, NewString("k"));
1439 // Dart_Handle frame2_locals = Dart_NewList(16); 1439 Dart_ListSetAt(frame2_locals, 5, Dart_NewInteger(33));
1440 // Dart_ListSetAt(frame2_locals, 0, NewString("i")); 1440 Dart_ListSetAt(frame2_locals, 6, NewString("l"));
1441 // Dart_ListSetAt(frame2_locals, 1, Dart_NewInteger(11)); 1441 Dart_ListSetAt(frame2_locals, 7, Dart_NewInteger(44));
1442 // Dart_ListSetAt(frame2_locals, 2, NewString("j")); 1442 Dart_ListSetAt(frame2_locals, 8, NewString("m"));
1443 // Dart_ListSetAt(frame2_locals, 3, Dart_NewInteger(22)); 1443 Dart_ListSetAt(frame2_locals, 9, Dart_NewInteger(55));
1444 // Dart_ListSetAt(frame2_locals, 4, NewString("k")); 1444 Dart_ListSetAt(frame2_locals, 10, NewString("this"));
1445 // Dart_ListSetAt(frame2_locals, 5, Dart_NewInteger(33)); 1445 Dart_ListSetAt(frame2_locals, 11, Dart_Null());
1446 // Dart_ListSetAt(frame2_locals, 6, NewString("l")); 1446 Dart_ListSetAt(frame2_locals, 12, NewString("func"));
1447 // Dart_ListSetAt(frame2_locals, 7, Dart_NewInteger(44)); 1447 Dart_ListSetAt(frame2_locals, 13, Dart_Null());
1448 // Dart_ListSetAt(frame2_locals, 8, NewString("m")); 1448 Dart_ListSetAt(frame2_locals, 14, NewString("n"));
1449 // Dart_ListSetAt(frame2_locals, 9, Dart_NewInteger(55)); 1449 Dart_ListSetAt(frame2_locals, 15, Dart_Null());
1450 // Dart_ListSetAt(frame2_locals, 10, NewString("this")); 1450
1451 // Dart_ListSetAt(frame2_locals, 11, Dart_Null()); 1451 // Frame 3 corresponding to "Test.func1".
1452 // Dart_ListSetAt(frame2_locals, 12, NewString("func")); 1452 Dart_Handle frame3_locals = Dart_NewList(18);
1453 // Dart_ListSetAt(frame2_locals, 13, Dart_Null()); 1453 Dart_ListSetAt(frame3_locals, 0, NewString("this"));
1454 // Dart_ListSetAt(frame2_locals, 14, NewString("n")); 1454 Dart_ListSetAt(frame3_locals, 1, Dart_Null());
1455 // Dart_ListSetAt(frame2_locals, 15, Dart_Null()); 1455 Dart_ListSetAt(frame3_locals, 2, NewString("func"));
1456 // 1456 Dart_ListSetAt(frame3_locals, 3, Dart_Null());
1457 // // Frame 3 corresponding to "Test.func1". 1457 Dart_ListSetAt(frame3_locals, 4, NewString("i"));
1458 // Dart_Handle frame3_locals = Dart_NewList(18); 1458 Dart_ListSetAt(frame3_locals, 5, Dart_NewInteger(11));
1459 // Dart_ListSetAt(frame3_locals, 0, NewString("this")); 1459 Dart_ListSetAt(frame3_locals, 6, NewString("j"));
1460 // Dart_ListSetAt(frame3_locals, 1, Dart_Null()); 1460 Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(22));
1461 // Dart_ListSetAt(frame3_locals, 2, NewString("func")); 1461 Dart_ListSetAt(frame3_locals, 8, NewString("k"));
1462 // Dart_ListSetAt(frame3_locals, 3, Dart_Null()); 1462 Dart_ListSetAt(frame3_locals, 9, Dart_NewInteger(33));
1463 // Dart_ListSetAt(frame3_locals, 4, NewString("i")); 1463 Dart_ListSetAt(frame3_locals, 10, NewString("l"));
1464 // Dart_ListSetAt(frame3_locals, 5, Dart_NewInteger(11)); 1464 Dart_ListSetAt(frame3_locals, 11, Dart_NewInteger(44));
1465 // Dart_ListSetAt(frame3_locals, 6, NewString("j")); 1465 Dart_ListSetAt(frame3_locals, 12, NewString("m"));
1466 // Dart_ListSetAt(frame3_locals, 7, Dart_NewInteger(22)); 1466 Dart_ListSetAt(frame3_locals, 13, Dart_NewInteger(55));
1467 // Dart_ListSetAt(frame3_locals, 8, NewString("k")); 1467 Dart_ListSetAt(frame3_locals, 14, NewString("local1_to_func1"));
1468 // Dart_ListSetAt(frame3_locals, 9, Dart_NewInteger(33)); 1468 Dart_ListSetAt(frame3_locals, 15, Dart_Null());
1469 // Dart_ListSetAt(frame3_locals, 10, NewString("l")); 1469 Dart_ListSetAt(frame3_locals, 16, NewString("sum"));
1470 // Dart_ListSetAt(frame3_locals, 11, Dart_NewInteger(44)); 1470 Dart_ListSetAt(frame3_locals, 17, Dart_NewInteger(0));
1471 // Dart_ListSetAt(frame3_locals, 12, NewString("m")); 1471
1472 // Dart_ListSetAt(frame3_locals, 13, Dart_NewInteger(55)); 1472 // Frame 4 corresponding to "main".
1473 // Dart_ListSetAt(frame3_locals, 14, NewString("local1_to_func1")); 1473 Dart_Handle frame4_locals = Dart_NewList(12);
1474 // Dart_ListSetAt(frame3_locals, 15, Dart_Null()); 1474 Dart_ListSetAt(frame4_locals, 0, NewString("i"));
1475 // Dart_ListSetAt(frame3_locals, 16, NewString("sum")); 1475 Dart_ListSetAt(frame4_locals, 1, Dart_NewInteger(10));
1476 // Dart_ListSetAt(frame3_locals, 17, Dart_NewInteger(0)); 1476 Dart_ListSetAt(frame4_locals, 2, NewString("j"));
1477 // 1477 Dart_ListSetAt(frame4_locals, 3, Dart_NewInteger(20));
1478 // // Frame 4 corresponding to "main". 1478 Dart_ListSetAt(frame4_locals, 4, NewString("local_to_main"));
1479 // Dart_Handle frame4_locals = Dart_NewList(12); 1479 Dart_ListSetAt(frame4_locals, 5, Dart_Null());
1480 // Dart_ListSetAt(frame4_locals, 0, NewString("i")); 1480 Dart_ListSetAt(frame4_locals, 6, NewString("sum"));
1481 // Dart_ListSetAt(frame4_locals, 1, Dart_NewInteger(10)); 1481 Dart_ListSetAt(frame4_locals, 7, Dart_NewInteger(0));
1482 // Dart_ListSetAt(frame4_locals, 2, NewString("j")); 1482 Dart_ListSetAt(frame4_locals, 8, NewString("value"));
1483 // Dart_ListSetAt(frame4_locals, 3, Dart_NewInteger(20)); 1483 Dart_ListSetAt(frame4_locals, 9, Dart_Null());
1484 // Dart_ListSetAt(frame4_locals, 4, NewString("local_to_main")); 1484 Dart_ListSetAt(frame4_locals, 10, NewString("func1"));
1485 // Dart_ListSetAt(frame4_locals, 5, Dart_Null()); 1485 Dart_ListSetAt(frame4_locals, 11, Dart_Null());
1486 // Dart_ListSetAt(frame4_locals, 6, NewString("sum")); 1486
1487 // Dart_ListSetAt(frame4_locals, 7, Dart_NewInteger(0)); 1487 Dart_Handle expected_locals[] = {
1488 // Dart_ListSetAt(frame4_locals, 8, NewString("value")); 1488 frame0_locals,
1489 // Dart_ListSetAt(frame4_locals, 9, Dart_Null()); 1489 frame1_locals,
1490 // Dart_ListSetAt(frame4_locals, 10, NewString("func1")); 1490 frame2_locals,
1491 // Dart_ListSetAt(frame4_locals, 11, Dart_Null()); 1491 frame3_locals,
1492 // 1492 frame4_locals
1493 // Dart_Handle expected_locals[] = { 1493 };
1494 // frame0_locals, 1494 breakpoint_hit_counter++;
1495 // frame1_locals, 1495 VerifyStackTrace(trace, expected_trace, expected_locals,
1496 // frame2_locals, 1496 kStackTraceLen, true);
1497 // frame3_locals, 1497 }
1498 // frame4_locals 1498
1499 // }; 1499
1500 // breakpoint_hit_counter++; 1500 TEST_CASE(Debug_StackTraceDump2) {
1501 // VerifyStackTrace(trace, expected_trace, expected_locals, 1501 const char* kScriptChars =
1502 // kStackTraceLen, true); 1502 "class Test {\n"
1503 //} 1503 " Test(int local);\n"
1504 1504 "\n"
1505 1505 " int func1(int func(int i, int j)) {\n"
1506 // TODO(tball): enable once problem with context variables is 1506 " var i = 0;\n"
1507 // fixed, where frame_ctx_level is sometimes off by 1 (issues 8593 and 8594) 1507 " var j = 0;\n"
1508 //TEST_CASE(Debug_StackTraceDump2) { 1508 " var k = 0;\n"
1509 // const char* kScriptChars = 1509 " var l = 0;\n"
1510 // "class Test {\n" 1510 " var m = 0;\n"
1511 // " Test(int local);\n" 1511 " int local1_to_func1(int func(int i, int j)) {\n"
1512 // "\n" 1512 " // Capture i and j here.\n"
1513 // " int func1(int func(int i, int j)) {\n" 1513 " i = 11;\n"
1514 // " var i = 0;\n" 1514 " j = 22;\n"
1515 // " var j = 0;\n" 1515 " k = 33;\n"
1516 // " var k = 0;\n" 1516 " l = 44;\n"
1517 // " var l = 0;\n" 1517 " m = 55;\n"
1518 // " var m = 0;\n" 1518 " var n = junk(i + j + k, l + m);\n"
1519 // " int local1_to_func1(int func(int i, int j)) {\n" 1519 " return n;\n"
1520 // " // Capture i and j here.\n" 1520 " }\n"
1521 // " i = 11;\n" 1521 " var sum = 0;\n"
1522 // " j = 22;\n" 1522 " return local1_to_func1(func);\n"
1523 // " k = 33;\n" 1523 " }\n"
1524 // " l = 44;\n" 1524 "\n"
1525 // " m = 55;\n" 1525 " int local;\n"
1526 // " var n = junk(i + j + k, l + m);\n" 1526 "}\n"
1527 // " return n;\n" 1527 "\n"
1528 // " }\n" 1528 "int main() {\n"
1529 // " var sum = 0;\n" 1529 " var i = 10;\n"
1530 // " return local1_to_func1(func);\n" 1530 " var j = 20;\n"
1531 // " }\n" 1531 " int local_to_main(int k, int l) {\n"
1532 // "\n" 1532 " // Capture i and j here.\n"
1533 // " int local;\n" 1533 " return i + j;\n"
1534 // "}\n" 1534 " }\n"
1535 // "\n" 1535 " var sum = 0;\n"
1536 // "int main() {\n" 1536 " Test value = new Test(10);\n"
1537 // " var i = 10;\n" 1537 " var func1 = value.func1;\n"
1538 // " var j = 20;\n" 1538 " return func1(local_to_main);\n"
1539 // " int local_to_main(int k, int l) {\n" 1539 "}\n";
1540 // " // Capture i and j here.\n" 1540
1541 // " return i + j;\n" 1541 LoadScript(kScriptChars);
1542 // " }\n" 1542 Dart_SetExceptionThrownHandler(&StackTraceDump2ExceptionHandler);
1543 // " var sum = 0;\n" 1543 breakpoint_hit_counter = 0;
1544 // " Test value = new Test(10);\n" 1544 Dart_SetExceptionPauseInfo(kPauseOnAllExceptions);
1545 // " var func1 = value.func1;\n" 1545
1546 // " return func1(local_to_main);\n" 1546 Dart_Handle retval = Invoke("main");
1547 // "}\n"; 1547 EXPECT(Dart_IsError(retval));
1548 // 1548 EXPECT(Dart_IsUnhandledExceptionError(retval));
1549 // LoadScript(kScriptChars); 1549 EXPECT_EQ(1, breakpoint_hit_counter);
1550 // Dart_SetExceptionThrownHandler(&StackTraceDump2ExceptionHandler); 1550 }
1551 // breakpoint_hit_counter = 0;
1552 // Dart_SetExceptionPauseInfo(kPauseOnAllExceptions);
1553 //
1554 // Dart_Handle retval = Invoke("main");
1555 // EXPECT(Dart_IsError(retval));
1556 // EXPECT(Dart_IsUnhandledExceptionError(retval));
1557 // EXPECT_EQ(1, breakpoint_hit_counter);
1558 //}
1559 1551
1560 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). 1552 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64).
1561 1553
1562 } // namespace dart 1554 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/tests/vm/vm.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698