| Index: test/mjsunit/debug-setbreakpoint.js
|
| ===================================================================
|
| --- test/mjsunit/debug-setbreakpoint.js (revision 1464)
|
| +++ test/mjsunit/debug-setbreakpoint.js (working copy)
|
| @@ -30,8 +30,13 @@
|
| Debug = debug.Debug
|
|
|
| // Simple function which stores the last debug event.
|
| -listenerComplete = false;
|
| -exception = false;
|
| +var listenerComplete = false;
|
| +var exception = false;
|
| +var f_script_id = 0;
|
| +var g_script_id = 0;
|
| +var h_script_id = 0;
|
| +var f_line = 0;
|
| +var g_line = 0;
|
|
|
| var base_request = '"seq":0,"type":"request","command":"setbreakpoint"'
|
|
|
| @@ -44,13 +49,18 @@
|
| }
|
| }
|
|
|
| -function testArguments(dcp, arguments, success, type) {
|
| +function testArguments(dcp, arguments, success, is_script) {
|
| var request = '{' + base_request + ',"arguments":' + arguments + '}'
|
| var json_response = dcp.processDebugJSONRequest(request);
|
| var response = safeEval(json_response);
|
| if (success) {
|
| assertTrue(response.success, json_response);
|
| - assertEquals(type ? type : 'script', response.body.type, json_response);
|
| + if (is_script) {
|
| + assertEquals('scriptName', response.body.type, json_response);
|
| + } else {
|
| + assertEquals('scriptId', response.body.type, json_response);
|
| + print(response.body.script_id);
|
| + }
|
| } else {
|
| assertFalse(response.success, json_response);
|
| }
|
| @@ -79,19 +89,24 @@
|
| testArguments(dcp, '{"type":"function","target":"f","ignoreCount":-1}', false);
|
|
|
| // Test some legal setbreakpoint requests.
|
| - testArguments(dcp, '{"type":"function","target":"f"}', true);
|
| - testArguments(dcp, '{"type":"function","target":"h"}', true, 'function');
|
| - testArguments(dcp, '{"type":"function","target":"f","line":1}', true);
|
| - testArguments(dcp, '{"type":"function","target":"f","position":1}', true);
|
| - testArguments(dcp, '{"type":"function","target":"f","condition":"i == 1"}', true);
|
| - testArguments(dcp, '{"type":"function","target":"f","enabled":true}', true);
|
| - testArguments(dcp, '{"type":"function","target":"f","enabled":false}', true);
|
| - testArguments(dcp, '{"type":"function","target":"f","ignoreCount":7}', true);
|
| - testArguments(dcp, '{"type":"script","target":"test"}', true);
|
| - testArguments(dcp, '{"type":"script","target":"test"}', true);
|
| - testArguments(dcp, '{"type":"script","target":"test","line":1}', true);
|
| - testArguments(dcp, '{"type":"script","target":"test","column":1}', true);
|
| + testArguments(dcp, '{"type":"function","target":"f"}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"h"}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","line":1}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","position":1}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","condition":"i == 1"}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","enabled":true}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","enabled":false}', true, false);
|
| + testArguments(dcp, '{"type":"function","target":"f","ignoreCount":7}', true, false);
|
|
|
| + testArguments(dcp, '{"type":"script","target":"test"}', true, true);
|
| + testArguments(dcp, '{"type":"script","target":"test"}', true, true);
|
| + testArguments(dcp, '{"type":"script","target":"test","line":1}', true, true);
|
| + testArguments(dcp, '{"type":"script","target":"test","column":1}', true, true);
|
| +
|
| + testArguments(dcp, '{"type":"scriptId","target":' + f_script_id + ',"line":' + f_line + '}', true, false);
|
| + testArguments(dcp, '{"type":"scriptId","target":' + g_script_id + ',"line":' + g_line + '}', true, false);
|
| + testArguments(dcp, '{"type":"scriptId","target":' + h_script_id + ',"line":' + h_line + '}', true, false);
|
| +
|
| // Indicate that all was processed.
|
| listenerComplete = true;
|
| }
|
| @@ -113,10 +128,27 @@
|
|
|
| eval('function h(){}');
|
|
|
| +// Check the script ids for the test functions.
|
| +f_script_id = Debug.findScript(f).id;
|
| +g_script_id = Debug.findScript(g).id;
|
| +h_script_id = Debug.findScript(h).id;
|
| +assertTrue(f_script_id > 0, "invalid script id for f");
|
| +assertTrue(g_script_id > 0, "invalid script id for g");
|
| +assertTrue(h_script_id > 0, "invalid script id for h");
|
| +assertEquals(f_script_id, g_script_id);
|
| +
|
| +// Get the source line for the test functions.
|
| +f_line = Debug.findFunctionSourceLocation(f).line;
|
| +g_line = Debug.findFunctionSourceLocation(g).line;
|
| +h_line = Debug.findFunctionSourceLocation(h).line;
|
| +assertTrue(f_line > 0, "invalid line for f");
|
| +assertTrue(g_line > 0, "invalid line for g");
|
| +assertTrue(f_line < g_line);
|
| +assertEquals(h_line, 0, "invalid line for h");
|
| +
|
| // Set a break point and call to invoke the debug event listener.
|
| Debug.setBreakPoint(g, 0, 0);
|
| g();
|
|
|
| // Make sure that the debug event listener vas invoked.
|
| -assertTrue(listenerComplete, "listener did not run to completion");
|
| -assertFalse(exception, "exception in listener")
|
| +assertTrue(listenerComplete, "listener did not run to completion: " + exception);
|
|
|