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

Unified Diff: test/cctest/test-debug.cc

Issue 2530093002: [debug] do not retroactively apply script break points. (Closed)
Patch Set: rebase Created 4 years 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
« no previous file with comments | « src/debug/liveedit.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-debug.cc
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
index 1fe3c83720f7e5047d2fab49c6f8f1a7dd000397..407f62d05a673f73aab70381a90c98b59ab05c14 100644
--- a/test/cctest/test-debug.cc
+++ b/test/cctest/test-debug.cc
@@ -1600,20 +1600,6 @@ TEST(EnableDisableScriptBreakPoint) {
f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
CHECK_EQ(2, break_point_hit_count);
- // Reload the script and get f again checking that the disabling survives.
- v8::Script::Compile(context, script, &origin)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- f = v8::Local<v8::Function>::Cast(
- env->Global()->Get(context, v8_str(isolate, "f")).ToLocalChecked());
- f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
- CHECK_EQ(2, break_point_hit_count);
-
- EnableScriptBreakPointFromJS(isolate, sbp);
- f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
- CHECK_EQ(3, break_point_hit_count);
-
v8::Debug::SetDebugEventListener(isolate, nullptr);
CheckDebuggerUnloaded(isolate);
}
@@ -1671,100 +1657,6 @@ TEST(ConditionalScriptBreakPoint) {
}
CHECK_EQ(5, break_point_hit_count);
- // Reload the script and get f again checking that the condition survives.
- v8::Script::Compile(context, script, &origin)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- f = v8::Local<v8::Function>::Cast(
- env->Global()
- ->Get(context, v8_str(env->GetIsolate(), "f"))
- .ToLocalChecked());
-
- break_point_hit_count = 0;
- for (int i = 0; i < 10; i++) {
- f->Call(env.context(), env->Global(), 0, NULL).ToLocalChecked();
- }
- CHECK_EQ(5, break_point_hit_count);
-
- v8::Debug::SetDebugEventListener(env->GetIsolate(), nullptr);
- CheckDebuggerUnloaded(env->GetIsolate());
-}
-
-
-// Test that script break points survive when a script is reloaded.
-TEST(ScriptBreakPointReload) {
- break_point_hit_count = 0;
- DebugLocalContext env;
- v8::HandleScope scope(env->GetIsolate());
- env.ExposeDebug();
-
- v8::Debug::SetDebugEventListener(env->GetIsolate(),
- DebugEventBreakPointHitCount);
-
- v8::Local<v8::Context> context = env.context();
- v8::Local<v8::Function> f;
- v8::Local<v8::String> script = v8_str(env->GetIsolate(),
- "function f() {\n"
- " function h() {\n"
- " a = 0; // line 2\n"
- " }\n"
- " b = 1; // line 4\n"
- " return h();\n"
- "}");
-
- v8::ScriptOrigin origin_1 = v8::ScriptOrigin(v8_str(env->GetIsolate(), "1"));
- v8::ScriptOrigin origin_2 = v8::ScriptOrigin(v8_str(env->GetIsolate(), "2"));
-
- // Set a script break point before the script is loaded.
- SetScriptBreakPointByNameFromJS(env->GetIsolate(), "1", 2, 0);
-
- // Compile the script and get the function.
- v8::Script::Compile(context, script, &origin_1)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- f = v8::Local<v8::Function>::Cast(
- env->Global()
- ->Get(context, v8_str(env->GetIsolate(), "f"))
- .ToLocalChecked());
-
- // Call f and check that the script break point is active.
- break_point_hit_count = 0;
- f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
- CHECK_EQ(1, break_point_hit_count);
-
- // Compile the script again with a different script data and get the
- // function.
- v8::Script::Compile(context, script, &origin_2)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- f = v8::Local<v8::Function>::Cast(
- env->Global()
- ->Get(context, v8_str(env->GetIsolate(), "f"))
- .ToLocalChecked());
-
- // Call f and check that no break points are set.
- break_point_hit_count = 0;
- f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
- CHECK_EQ(0, break_point_hit_count);
-
- // Compile the script again and get the function.
- v8::Script::Compile(context, script, &origin_1)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- f = v8::Local<v8::Function>::Cast(
- env->Global()
- ->Get(context, v8_str(env->GetIsolate(), "f"))
- .ToLocalChecked());
-
- // Call f and check that the script break point is active.
- break_point_hit_count = 0;
- f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
- CHECK_EQ(1, break_point_hit_count);
-
v8::Debug::SetDebugEventListener(env->GetIsolate(), nullptr);
CheckDebuggerUnloaded(env->GetIsolate());
}
@@ -1795,9 +1687,6 @@ TEST(ScriptBreakPointMultiple) {
v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str(env->GetIsolate(), "test"));
- // Set a script break point before the scripts are loaded.
- int sbp = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 1, 0);
-
// Compile the scripts with same script data and get the functions.
v8::Script::Compile(context, script_f, &origin)
.ToLocalChecked()
@@ -1816,6 +1705,8 @@ TEST(ScriptBreakPointMultiple) {
->Get(context, v8_str(env->GetIsolate(), "g"))
.ToLocalChecked());
+ int sbp = SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test", 1, 0);
+
// Call f and g and check that the script break point is active.
break_point_hit_count = 0;
f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
@@ -1871,17 +1762,17 @@ TEST(ScriptBreakPointLineOffset) {
v8::ScriptOrigin origin(v8_str(env->GetIsolate(), "test.html"),
v8::Integer::New(env->GetIsolate(), 7));
- // Set two script break points before the script is loaded.
- int sbp1 =
- SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 8, 0);
- int sbp2 =
- SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 9, 0);
-
// Compile the script and get the function.
v8::Script::Compile(context, script, &origin)
.ToLocalChecked()
->Run(context)
.ToLocalChecked();
+
+ int sbp1 =
+ SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 8, 0);
+ int sbp2 =
+ SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 9, 0);
+
f = v8::Local<v8::Function>::Cast(
env->Global()
->Get(context, v8_str(env->GetIsolate(), "f"))
@@ -1947,7 +1838,13 @@ TEST(ScriptBreakPointLine) {
" }\n"
" a=5; // line 12");
- // Set a couple script break point before the script is loaded.
+ // Compile the script and get the function.
+ break_point_hit_count = 0;
+ v8::ScriptOrigin origin(v8_str(env->GetIsolate(), "test.html"),
+ v8::Integer::New(env->GetIsolate(), 0));
+ v8::Local<v8::Script> compiled =
+ v8::Script::Compile(context, script, &origin).ToLocalChecked();
+
int sbp1 =
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 0, -1);
int sbp2 =
@@ -1955,14 +1852,8 @@ TEST(ScriptBreakPointLine) {
int sbp3 =
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 5, -1);
- // Compile the script and get the function.
- break_point_hit_count = 0;
- v8::ScriptOrigin origin(v8_str(env->GetIsolate(), "test.html"),
- v8::Integer::New(env->GetIsolate(), 0));
- v8::Script::Compile(context, script, &origin)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
+ compiled->Run(context).ToLocalChecked();
+
f = v8::Local<v8::Function>::Cast(
env->Global()
->Get(context, v8_str(env->GetIsolate(), "f"))
@@ -2008,39 +1899,21 @@ TEST(ScriptBreakPointLine) {
g->Call(context, env->Global(), 0, NULL).ToLocalChecked();
CHECK_EQ(0, break_point_hit_count);
- // Reload the script which should hit two break points.
- break_point_hit_count = 0;
- v8::Script::Compile(context, script, &origin)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- CHECK_EQ(2, break_point_hit_count);
- CHECK_EQ(0, StrLength(last_function_hit));
-
// Set a break point in the code after the last function decleration.
int sbp6 =
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 12, -1);
- // Reload the script which should hit three break points.
+ // Reloading the script should not hit any break points.
break_point_hit_count = 0;
v8::Script::Compile(context, script, &origin)
.ToLocalChecked()
->Run(context)
.ToLocalChecked();
- CHECK_EQ(3, break_point_hit_count);
- CHECK_EQ(0, StrLength(last_function_hit));
+ CHECK_EQ(0, break_point_hit_count);
- // Clear the last break points, and reload the script which should not hit any
- // break points.
ClearBreakPointFromJS(env->GetIsolate(), sbp1);
ClearBreakPointFromJS(env->GetIsolate(), sbp5);
ClearBreakPointFromJS(env->GetIsolate(), sbp6);
- break_point_hit_count = 0;
- v8::Script::Compile(context, script, &origin)
- .ToLocalChecked()
- ->Run(context)
- .ToLocalChecked();
- CHECK_EQ(0, break_point_hit_count);
v8::Debug::SetDebugEventListener(env->GetIsolate(), nullptr);
CheckDebuggerUnloaded(env->GetIsolate());
@@ -2082,17 +1955,9 @@ TEST(ScriptBreakPointLineTopLevel) {
f->Call(context, env->Global(), 0, NULL).ToLocalChecked();
CHECK_EQ(0, break_point_hit_count);
- // Recompile and run script and check that break point was hit.
+ // Recompile and run script and check that break point was not reapplied.
break_point_hit_count = 0;
CompileRunWithOrigin(script, "test.html");
- CHECK_EQ(1, break_point_hit_count);
-
- // Call f and check that there are still no break points.
- break_point_hit_count = 0;
- f = v8::Local<v8::Function>::Cast(
- env->Global()
- ->Get(context, v8_str(env->GetIsolate(), "f"))
- .ToLocalChecked());
CHECK_EQ(0, break_point_hit_count);
v8::Debug::SetDebugEventListener(env->GetIsolate(), nullptr);
@@ -2110,20 +1975,18 @@ TEST(ScriptBreakPointTopLevelCrash) {
v8::Debug::SetDebugEventListener(env->GetIsolate(),
DebugEventBreakPointHitCount);
- v8::Local<v8::String> script_source = v8_str(env->GetIsolate(),
- "function f() {\n"
- " return 0;\n"
- "}\n"
- "f()");
-
+ CompileRunWithOrigin(
+ "function f() {\n"
+ " return 0;\n"
+ "}\n",
+ "test.html");
int sbp1 =
- SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1);
- {
- v8::HandleScope scope(env->GetIsolate());
- break_point_hit_count = 0;
- CompileRunWithOrigin(script_source, "test.html");
- CHECK_EQ(1, break_point_hit_count);
- }
+ SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 1, -1);
+ break_point_hit_count = 0;
+
+ CompileRun("f();");
+
+ CHECK_EQ(1, break_point_hit_count);
int sbp2 =
SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1);
@@ -3638,15 +3501,16 @@ TEST(PauseInScript) {
const char* src = "(function (evt) {})";
const char* script_name = "StepInHandlerTest";
- // Set breakpoint in the script.
- SetScriptBreakPointByNameFromJS(env->GetIsolate(), script_name, 0, -1);
- break_point_hit_count = 0;
-
v8::ScriptOrigin origin(v8_str(env->GetIsolate(), script_name),
v8::Integer::New(env->GetIsolate(), 0));
v8::Local<v8::Script> script =
v8::Script::Compile(context, v8_str(env->GetIsolate(), src), &origin)
.ToLocalChecked();
+
+ // Set breakpoint in the script.
+ SetScriptBreakPointByNameFromJS(env->GetIsolate(), script_name, 0, -1);
+ break_point_hit_count = 0;
+
v8::Local<v8::Value> r = script->Run(context).ToLocalChecked();
CHECK(r->IsFunction());
« no previous file with comments | « src/debug/liveedit.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698