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

Unified Diff: test/inspector/debugger/continue-to-location.js

Issue 2369753004: [inspector] added inspector test runner [part 5] (Closed)
Patch Set: addressed comments Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: test/inspector/debugger/continue-to-location.js
diff --git a/test/inspector/debugger/continue-to-location.js b/test/inspector/debugger/continue-to-location.js
new file mode 100644
index 0000000000000000000000000000000000000000..4129e2f5b476bf1a64d97e037d5586e73eecf1e2
--- /dev/null
+++ b/test/inspector/debugger/continue-to-location.js
@@ -0,0 +1,114 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+InspectorTest.evaluateInPage(
+`function statementsExample()
+{
+ var self = arguments.callee;
+
+ debugger;
+
+ self.step = 1;
+
+ self.step = 2;
+
+ void [
+ self.step = 3,
+ self.step = 4,
+ self.step = 5,
+ self.step = 6
+ ];
+
+ self.step = 7;
+}`);
+
+var scenario = [
+ // requested line number, expected control parameter 'step', expected line number
+ [ 8, 1, 8 ],
+ [ 8, 1, 8 ],
+ [ 12, 6, 17 ],
+ [ 13, 6, 17 ],
+ [ 17, 6, 17 ],
+ [ 17, 6, 17 ],
+];
+
+InspectorTest.sendCommand("Debugger.enable", {});
+
+InspectorTest.sendCommand("Runtime.evaluate", { "expression": "statementsExample" }, callbackEvalFunctionObject);
+
+function callbackEvalFunctionObject(response)
+{
+ var functionObjectId = response.result.result.objectId;
+ InspectorTest.sendCommand("Runtime.getProperties", { objectId: functionObjectId }, callbackFunctionDetails);
+}
+
+function callbackFunctionDetails(response)
+{
+ var result = response.result;
+ var scriptId;
+ for (var prop of result.internalProperties) {
+ if (prop.name === "[[FunctionLocation]]")
+ scriptId = prop.value.value.scriptId;
+ }
+
+ nextScenarioStep(0);
+
+ function nextScenarioStep(pos)
+ {
+ if (pos < scenario.length)
+ gotoSinglePassChain(scriptId, scenario[pos][0], scenario[pos][1], scenario[pos][2], nextScenarioStep.bind(this, pos + 1));
+ else
+ InspectorTest.completeTest();
+ }
+}
+
+function gotoSinglePassChain(scriptId, lineNumber, expectedResult, expectedLineNumber, next)
+{
+ InspectorTest.eventHandler["Debugger.paused"] = handleDebuggerPausedOne;
+
+ InspectorTest.sendCommand("Runtime.evaluate", { "expression": "setTimeout(statementsExample, 0)" });
+
+ function handleDebuggerPausedOne(messageObject)
+ {
+ InspectorTest.log("Paused on debugger statement");
+
+ InspectorTest.eventHandler["Debugger.paused"] = handleDebuggerPausedTwo;
+
+ InspectorTest.sendCommand("Debugger.continueToLocation", { location: { scriptId: scriptId, lineNumber: lineNumber, columnNumber: 0} }, logContinueToLocation);
+
+ function logContinueToLocation(response)
+ {
+ if (response.error) {
+ InspectorTest.log("Failed to execute continueToLocation " + JSON.stringify(response.error));
+ InspectorTest.completeTest();
+ }
+ }
+ }
+ function handleDebuggerPausedTwo(messageObject)
+ {
+ InspectorTest.log("Paused after continueToLocation");
+ var actualLineNumber = messageObject.params.callFrames[0].location.lineNumber;
+
+ InspectorTest.log("Stopped on line " + actualLineNumber + ", expected " + expectedLineNumber + ", requested " + lineNumber + ", (0-based numbers).");
+
+ InspectorTest.eventHandler["Debugger.paused"] = handleDebuggerPausedUnexpected;
+
+ InspectorTest.sendCommand("Runtime.evaluate", { "expression": "statementsExample.step" }, callbackStepEvaluate);
+ }
+
+ function callbackStepEvaluate(response)
+ {
+ var resultValue = response.result.result.value;
+ InspectorTest.log("Control parameter 'step' calculation result: " + resultValue + ", expected: " + expectedResult);
+ InspectorTest.log(resultValue === expectedResult ? "SUCCESS" : "FAIL");
+ InspectorTest.sendCommand("Debugger.resume", { });
+ next();
+ }
+
+ function handleDebuggerPausedUnexpected(messageObject)
+ {
+ InspectorTest.log("Unexpected debugger pause");
+ InspectorTest.completeTest();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698