Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Mono.Debugger.Soft/Test/dtest.cs')
-rw-r--r--mcs/class/Mono.Debugger.Soft/Test/dtest.cs136
1 files changed, 136 insertions, 0 deletions
diff --git a/mcs/class/Mono.Debugger.Soft/Test/dtest.cs b/mcs/class/Mono.Debugger.Soft/Test/dtest.cs
index f6312cb1703..ce74b4fd5fb 100644
--- a/mcs/class/Mono.Debugger.Soft/Test/dtest.cs
+++ b/mcs/class/Mono.Debugger.Soft/Test/dtest.cs
@@ -943,6 +943,142 @@ public class DebuggerTests
f = e.Thread.GetFrames ()[0];
AssertValue (7.0, f.GetValue (f.Method.GetParameters ()[0]));
req.Disable ();
+
+ e = run_until ("ss_await");
+ e = step_in_await ("ss_await", e);//ss_await_1 ().Wait ();//in
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//var a = 1;
+ e = step_in_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_in_await ("MoveNext", e);//return a + 2;
+ e = step_in_await ("MoveNext", e);//}
+ e = step_in_await ("ss_await", e);//ss_await_1 ().Wait ();//in
+
+ e = step_in_await ("ss_await", e);//ss_await_1 ().Wait ();//over
+ e = step_in_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//var a = 1;
+ e = step_over_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_over_await ("MoveNext", e);//return a + 2;
+ e = step_over_await ("MoveNext", e);//}
+ e = step_over_await ("ss_await", e);//ss_await_1 ().Wait ();//over
+
+ e = step_in_await ("ss_await", e);//ss_await_1 ().Wait ();//out before
+ e = step_in_await ("MoveNext", e);//{
+ e = step_out_await ("ss_await", e);//ss_await_1 ().Wait ();//out before
+
+ e = step_in_await ("ss_await", e);//ss_await_1 ().Wait ();//out after
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//var a = 1;
+ e = step_in_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_in_await ("MoveNext", e);//return a + 2;
+ e = step_out_await ("ss_await", e);//ss_await_1 ().Wait ();//out after
+
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//in
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//var a = 1;
+ e = step_in_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_in_await ("MoveNext", e);//if (exc)
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//if (handled)
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//try {
+ e = step_in_await ("MoveNext", e);//throw new Exception ();
+ e = step_in_await ("MoveNext", e);//catch
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//}
+ e = step_in_await ("MoveNext", e);//}
+ e = step_in_await ("MoveNext", e);//}
+ e = step_in_await ("MoveNext", e);//return a + 2;
+ e = step_in_await ("MoveNext", e);//}
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//in
+
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//over
+ e = step_in_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//var a = 1;
+ e = step_over_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_over_await ("MoveNext", e);//if (exc)
+ e = step_over_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//if (handled)
+ e = step_over_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//try {
+ e = step_over_await ("MoveNext", e);//throw new Exception ();
+ e = step_over_await ("MoveNext", e);//catch
+ e = step_over_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//}
+ e = step_over_await ("MoveNext", e);//}
+ e = step_over_await ("MoveNext", e);//}
+ e = step_over_await ("MoveNext", e);//return a + 2;
+ e = step_over_await ("MoveNext", e);//}
+ e = step_over_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//over
+
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//out
+ e = step_in_await ("MoveNext", e);//{
+ e = step_out_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//out
+
+ e = step_in_await ("ss_await", e);//try {
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, false).Wait ();//in
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//var a = 1;
+ e = step_in_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_in_await ("MoveNext", e);//if (exc)
+ e = step_in_await ("MoveNext", e);//{
+ e = step_in_await ("MoveNext", e);//if (handled)
+ e = step_in_await ("MoveNext", e);//} else {
+ e = step_in_await ("MoveNext", e);//throw new Exception ();
+ e = step_in_await ("ss_await", e);//catch
+ e = step_in_await ("ss_await", e);//{
+ e = step_in_await ("ss_await", e);//}
+ e = step_in_await ("ss_await", e);//try {
+
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, false).Wait ();//over
+ e = step_in_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//var a = 1;
+ e = step_over_await ("MoveNext", e);//await Task.Delay (10);
+ e = step_over_await ("MoveNext", e);//if (exc)
+ e = step_over_await ("MoveNext", e);//{
+ e = step_over_await ("MoveNext", e);//if (handled)
+ e = step_over_await ("MoveNext", e);//} else {
+ e = step_over_await ("MoveNext", e);//throw new Exception ();
+ e = step_over_await ("ss_await", e);//catch
+ e = step_over_await ("ss_await", e);//{
+ e = step_over_await ("ss_await", e);//}
+ e = step_over_await ("ss_await", e);//try {
+
+ e = step_in_await ("ss_await", e);//ss_await_1_exc (true, false).Wait ();//out
+ e = step_in_await ("MoveNext", e);//{
+ e = step_out_await ("ss_await", e);//ss_await_1_exc (true, true).Wait ();//out
+ }
+
+ Event step_in_await (string method, Event e)
+ {
+ if (step_req != null)
+ step_req.Disable ();
+ create_step (e);
+ step_req.AssemblyFilter = new List<AssemblyMirror> () { entry_point.DeclaringType.Assembly };
+ var ef = step_into ();
+ assert_location (ef, method);
+ return ef;
+ }
+
+ Event step_over_await (string method, Event e)
+ {
+ if (step_req != null)
+ step_req.Disable ();
+ create_step (e);
+ step_req.AssemblyFilter = new List<AssemblyMirror> () { entry_point.DeclaringType.Assembly };
+ var ef = step_over ();
+ assert_location (ef, method);
+ return ef;
+ }
+
+ Event step_out_await (string method, Event e)
+ {
+ if (step_req != null)
+ step_req.Disable ();
+ create_step (e);
+ step_req.AssemblyFilter = new List<AssemblyMirror> () { entry_point.DeclaringType.Assembly };
+ var ef = step_out ();
+ assert_location (ef, method);
+ return ef;
}
[Test]