diff --git a/IDE/Tests/DebuggerTest01/BeefProj.toml b/IDE/Tests/DebuggerTest01/BeefProj.toml new file mode 100644 index 00000000..6fd4e695 --- /dev/null +++ b/IDE/Tests/DebuggerTest01/BeefProj.toml @@ -0,0 +1,5 @@ +FileVersion = 1 + +[Project] +Name = "Test" +StartupObject = "Test.Program" diff --git a/IDE/Tests/DebuggerTest01/BeefSpace.toml b/IDE/Tests/DebuggerTest01/BeefSpace.toml new file mode 100644 index 00000000..a9ebefac --- /dev/null +++ b/IDE/Tests/DebuggerTest01/BeefSpace.toml @@ -0,0 +1,5 @@ +FileVersion = 1 +Projects = {Test = {Path = "."}} + +[Workspace] +StartupProject = "Test" diff --git a/IDE/Tests/DebuggerTest01/scripts/Container01.txt b/IDE/Tests/DebuggerTest01/scripts/Container01.txt new file mode 100644 index 00000000..7c27ff3e --- /dev/null +++ b/IDE/Tests/DebuggerTest01/scripts/Container01.txt @@ -0,0 +1,22 @@ +# This ensures that we entry [4] remains open even after removing them item above it +ShowFile("src/Container.bf") +GotoText("//TestA") +ToggleBreakpoint() +GotoText("//TestB") +ToggleBreakpoint() +RunWithCompiling() +ShowWatches() +AddWatch("list") +SelectWatch("list") +OpenSelectedWatches() +SelectWatch("[4]") +OpenSelectedWatches() +FocusWatchDir(2) +AssertSelectedWatchEquals("5") +StepOver() +SelectWatch("[4]") +FocusWatchDir(2) +AssertSelectedWatchEquals("6") +Continue() +SelectWatch("[4]") +AssertSelectedWatchEquals("4") \ No newline at end of file diff --git a/IDE/Tests/DebuggerTest01/src/Container.bf b/IDE/Tests/DebuggerTest01/src/Container.bf new file mode 100644 index 00000000..4e830774 --- /dev/null +++ b/IDE/Tests/DebuggerTest01/src/Container.bf @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System; + +namespace Test +{ + class Container + { + static void TestB() + { + List list = scope .(); + for (int i < 5) + list.Add(i); + + //TestB + list.Remove(2); + } + + static void TestA() + { + List list = scope .(); + list.Add("A"); + list.Add("AB"); + list.Add("ABC"); + list.Add("ABCD"); + list.Add("ABCDE"); + list.Add("ABCDEF"); + + for (int i < 100) + { + list.Add(scope:: String()..AppendF("Str{}", i)); + } + + //TestA + list.RemoveAt(3); + TestB(); + } + + public static void Test() + { + TestA(); + } + } +} diff --git a/IDE/Tests/DebuggerTest01/src/Program.bf b/IDE/Tests/DebuggerTest01/src/Program.bf new file mode 100644 index 00000000..35f9afde --- /dev/null +++ b/IDE/Tests/DebuggerTest01/src/Program.bf @@ -0,0 +1,14 @@ +#pragma warning disable 168 + +using System; + +namespace Test +{ + class Program + { + static void Main() + { + Container.Test(); + } + } +} diff --git a/bin/test_ide.bat b/bin/test_ide.bat index 8ea5b0a5..ea460af8 100644 --- a/bin/test_ide.bat +++ b/bin/test_ide.bat @@ -19,6 +19,10 @@ PUSHD %~dp0..\ @CALL :TEST @IF !ERRORLEVEL! NEQ 0 GOTO HADERROR +@SET TESTPATH=IDE\Tests\DebuggerTests +@CALL :TEST +@IF !ERRORLEVEL! NEQ 0 GOTO HADERROR + @SET TESTPATH=IDE\Tests\TestDynCrt1 @CALL :TEST @IF !ERRORLEVEL! NEQ 0 GOTO HADERROR