Update tests
authorIgor Kulaychuk <i.kulaychuk@samsung.com>
Thu, 29 Mar 2018 14:55:47 +0000 (17:55 +0300)
committerIgor Kulaychuk <i.kulaychuk@samsung.com>
Thu, 29 Mar 2018 14:55:47 +0000 (17:55 +0300)
Renamed tests.
Now it is required to specify test names in runner project.
Tests solution moved to tests directory.
Add ability to run debugger through custom pipe script.
Add script for running tests through sdb.

12 files changed:
netcoredbg.sln [deleted file]
tests/SimpleSteppingTest/SimpleSteppingTest.cs [new file with mode: 0644]
tests/SimpleSteppingTest/SimpleSteppingTest.csproj [new file with mode: 0644]
tests/ValuesTest/ValuesTest.cs [new file with mode: 0644]
tests/ValuesTest/ValuesTest.csproj [new file with mode: 0644]
tests/run_tests_sdb.sh [new file with mode: 0755]
tests/runner/Runner.cs
tests/simple_stepping/Program.cs [deleted file]
tests/simple_stepping/simple_stepping.csproj [deleted file]
tests/tests.sln [new file with mode: 0644]
tests/values/Program.cs [deleted file]
tests/values/values.csproj [deleted file]

diff --git a/netcoredbg.sln b/netcoredbg.sln
deleted file mode 100644 (file)
index 903e051..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{339D37EB-9697-4F56-926B-6083B37DD5D4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "runner", "tests\runner\runner.csproj", "{B6F87D26-7803-4944-BB93-0AFFE1AE6376}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "simple_stepping", "tests\simple_stepping\simple_stepping.csproj", "{9A14D26B-6757-4554-884F-86A8330E047E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "values", "tests\values\values.csproj", "{88B59429-71FE-49D7-8219-7FEEC4B96D18}"
-EndProject
-Global
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Debug|Any CPU = Debug|Any CPU
-               Debug|x64 = Debug|x64
-               Debug|x86 = Debug|x86
-               Release|Any CPU = Release|Any CPU
-               Release|x64 = Release|x64
-               Release|x86 = Release|x86
-       EndGlobalSection
-       GlobalSection(SolutionProperties) = preSolution
-               HideSolutionNode = FALSE
-       EndGlobalSection
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|x64.ActiveCfg = Debug|x64
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|x64.Build.0 = Debug|x64
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|x86.ActiveCfg = Debug|x86
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Debug|x86.Build.0 = Debug|x86
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|Any CPU.Build.0 = Release|Any CPU
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|x64.ActiveCfg = Release|x64
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|x64.Build.0 = Release|x64
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|x86.ActiveCfg = Release|x86
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376}.Release|x86.Build.0 = Release|x86
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|x64.ActiveCfg = Debug|x64
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|x64.Build.0 = Debug|x64
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|x86.ActiveCfg = Debug|x86
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Debug|x86.Build.0 = Debug|x86
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|Any CPU.Build.0 = Release|Any CPU
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|x64.ActiveCfg = Release|x64
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|x64.Build.0 = Release|x64
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|x86.ActiveCfg = Release|x86
-               {9A14D26B-6757-4554-884F-86A8330E047E}.Release|x86.Build.0 = Release|x86
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|x64.ActiveCfg = Debug|x64
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|x64.Build.0 = Debug|x64
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|x86.ActiveCfg = Debug|x86
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Debug|x86.Build.0 = Debug|x86
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|Any CPU.Build.0 = Release|Any CPU
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|x64.ActiveCfg = Release|x64
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|x64.Build.0 = Release|x64
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|x86.ActiveCfg = Release|x86
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18}.Release|x86.Build.0 = Release|x86
-       EndGlobalSection
-       GlobalSection(NestedProjects) = preSolution
-               {B6F87D26-7803-4944-BB93-0AFFE1AE6376} = {339D37EB-9697-4F56-926B-6083B37DD5D4}
-               {9A14D26B-6757-4554-884F-86A8330E047E} = {339D37EB-9697-4F56-926B-6083B37DD5D4}
-               {88B59429-71FE-49D7-8219-7FEEC4B96D18} = {339D37EB-9697-4F56-926B-6083B37DD5D4}
-       EndGlobalSection
-EndGlobal
diff --git a/tests/SimpleSteppingTest/SimpleSteppingTest.cs b/tests/SimpleSteppingTest/SimpleSteppingTest.cs
new file mode 100644 (file)
index 0000000..91c282d
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+Send("1-file-exec-and-symbols dotnet");
+Send("2-exec-arguments " + TestBin);
+Send("3-exec-run");
+
+var r = Expect("*stopped");
+Assert.Equal(r.FindString("reason"), "entry-point-hit");
+Assert.Equal(r.Find("frame").FindInt("line"), Lines["START"]);
+
+Send("4-exec-step");
+r = Expect("*stopped");
+Assert.Equal(r.FindString("reason"), "end-stepping-range");
+Assert.Equal(r.Find("frame").FindInt("line"), Lines["STEP1"]);
+
+Send("5-exec-step");
+r = Expect("*stopped");
+Assert.Equal(r.FindString("reason"), "end-stepping-range");
+Assert.Equal(r.Find("frame").FindInt("line"), Lines["STEP2"]);
+
+Send("6-gdb-exit");
+*/
+
+using System;
+
+namespace simple_stepping
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {                                      // //@START@
+            Console.WriteLine("Hello World!"); // //@STEP1@
+        }                                      // //@STEP2@
+    }
+}
diff --git a/tests/SimpleSteppingTest/SimpleSteppingTest.csproj b/tests/SimpleSteppingTest/SimpleSteppingTest.csproj
new file mode 100644 (file)
index 0000000..ce1697a
--- /dev/null
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+</Project>
diff --git a/tests/ValuesTest/ValuesTest.cs b/tests/ValuesTest/ValuesTest.cs
new file mode 100644 (file)
index 0000000..9e2c36a
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+using System;
+
+Send("1-file-exec-and-symbols dotnet");
+Send("2-exec-arguments " + TestBin);
+Send("3-exec-run");
+
+var r = Expect("*stopped");
+Assert.Equal("entry-point-hit", r.FindString("reason"));
+Assert.Equal(Lines["START"], r.Find("frame").FindInt("line"));
+
+Send(String.Format("4-break-insert -f {0}:{1}", TestSource, Lines["BREAK"]));
+Expect("4^done");
+
+Send("5-exec-continue");
+*/
+
+using System;
+
+namespace values
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {              // //@START@
+            decimal d = 12345678901234567890123456m;
+            int x = 1; // //@BREAK@
+            /*
+r = Expect("*stopped");
+Assert.Equal("breakpoint-hit", r.FindString("reason"));
+Assert.Equal(Lines["BREAK"], r.Find("frame").FindInt("line"));
+
+Send(String.Format("6-var-create - * \"{0}\"", "d"));
+r = Expect("6^done");
+Assert.Equal("12345678901234567890123456", r.FindString("value"));
+Assert.Equal("d", r.FindString("exp"));
+Assert.Equal("0", r.FindString("numchild"));
+Assert.Equal("decimal", r.FindString("type"));
+             */
+        }
+    }
+}
+/*
+Send("7-exec-continue");
+r = Expect("*stopped");
+Assert.Equal("exited", r.FindString("reason"));
+*/
diff --git a/tests/ValuesTest/ValuesTest.csproj b/tests/ValuesTest/ValuesTest.csproj
new file mode 100644 (file)
index 0000000..ce1697a
--- /dev/null
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+</Project>
diff --git a/tests/run_tests_sdb.sh b/tests/run_tests_sdb.sh
new file mode 100755 (executable)
index 0000000..57fe948
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Before running this script:
+#   1. Enable root mode:         sdb root on
+#   2. Remount system partition: sdb shell mount -o rw,remount /
+#   3. Install netcoredbg rpm:   sdb push netcoredbg-*.rpm /tmp && sdb shell rpm -i --force /tmp/netcoredbg-*.rpm
+#   4. Create dotnet symlink:    sdb shell ln -s /usr/share/dotnet/corerun /usr/bin/dotnet
+
+SDB=${SDB:=sdb}
+
+SCRIPTDIR=$(dirname $(readlink -f $0))
+
+# Upload all test dlls and pdbs
+find $SCRIPTDIR -name '*Test.runtimeconfig.json' | while read fname; do
+  base=$(echo $fname | rev | cut -f 3- -d '.' | rev)
+  $SDB push ${base}.dll ${base}.pdb /tmp
+  #$SDB shell chsmack -a '*' /tmp/$(basename ${base}.dll) /tmp/$(basename ${base}.pdb)
+done
+
+# Run tests
+
+DEBUGGER=/home/owner/share/tmp/sdk_tools/netcoredbg/netcoredbg
+
+TESTDIR=/tmp PIPE="(sleep 1; cat) | $SDB shell stty raw -echo\\;$DEBUGGER --interpreter=mi" dotnet test $SCRIPTDIR --logger "trx;LogFileName=$SCRIPTDIR/Results.trx"
index 67f1d8455fa89c4cf9e1bcc71d25a020482314a8..0707f2e2cc96dadb9e01a9fc46f91c2a18dfbb54 100644 (file)
@@ -9,13 +9,11 @@ using Xunit;
 using Xunit.Abstractions;
 
 using System.Text.RegularExpressions;
-using System.Linq;
 using System.Reflection;
 
 using Microsoft.CodeAnalysis;
 using Microsoft.CodeAnalysis.CSharp.Scripting;
 using Microsoft.CodeAnalysis.CSharp;
-using Microsoft.CodeAnalysis.CSharp.Syntax;
 using System.Runtime.CompilerServices;
 using Microsoft.CodeAnalysis.Scripting;
 
@@ -23,84 +21,16 @@ using System.Threading;
 
 namespace Runner
 {
-    public class Labeled<T>
+    public class TestRunner
     {
-        public Labeled(T data, string label)
-        {
-            Data = data;
-            Label = label;
-        }
-
-        public T Data { get; }
-        public string Label { get; }
-
-        public override string ToString()
-        {
-            return Label;
-        }
-    }
-
-    public static class Labeledextensions
-    {
-        public static Labeled<T> Labeled<T>
-                (this T source, string label)=>new Labeled<T>( source, label );
-    }
-
-    public partial class TestRunner
-    {
-        public static IEnumerable<object[]> Data()
-        {
-            object[] make
-            (string binName,
-             string srcName,
-             string label)
-            {
-                return new object []
-                { ( binName:binName
-                , srcName:srcName
-                )
-                .Labeled(label)
-                };
-            }
-            var data = new List<object[]>();
-
-            // Sneaky way to get assembly path, which works even if call
-            // current constructor with reflection
-            string codeBase = Assembly.GetExecutingAssembly().CodeBase;
-            UriBuilder uri = new UriBuilder(codeBase);
-            string path = Uri.UnescapeDataString(uri.Path);
-            var d = new DirectoryInfo(Path.GetDirectoryName(path));
-
-            // Get path to runner binaries
-            path = Path.Combine(d.Parent.Parent.Parent.Parent.FullName, "runner");
-            var files = Directory.GetFiles(path, "*.dll", SearchOption.AllDirectories);
-            var depsJson = new FileInfo(files[0].Substring(0, files[0].Length - 4) + ".deps.json");
-            var runnerPath = depsJson.Directory.Parent.Parent.Parent.FullName;
-
-            // Find all dlls
-            var baseDir = d.Parent.Parent.Parent.Parent;
-            files = Directory.GetFiles(baseDir.FullName, "*.dll", SearchOption.AllDirectories);
-
-            foreach (var dll in files)
-            {
-                string testName = dll.Substring(0, dll.Length - 4);
-                depsJson = new FileInfo(testName + ".deps.json");
-                var dllDir = depsJson.Directory.Parent.Parent.Parent.FullName;
-                // Do not use as test cases runner and launcher files
-                if (depsJson.Exists &&
-                    !dllDir.Equals(runnerPath, StringComparison.CurrentCultureIgnoreCase))
-                {
-                    var csFiles = Directory.GetFiles(depsJson.Directory.Parent.Parent.Parent.FullName, "*.cs");
-                    data.Add(make(dll, csFiles[0], testName.Split('/').Last()));
-                }
-            }
-
-            return data;
-        }
+        [Fact]
+        public void SimpleSteppingTest() => ExecuteTest();
 
+        [Fact]
+        public void ValuesTest() => ExecuteTest();
         public class ProcessInfo
         {
-            public ProcessInfo(string binName, ITestOutputHelper output)
+            public ProcessInfo(string command, ITestOutputHelper output)
             {
                 this.output = output;
                 process = new Process();
@@ -110,8 +40,8 @@ namespace Runner
                 process.StartInfo.RedirectStandardOutput = true;
                 process.StartInfo.RedirectStandardInput = true;
                 process.StartInfo.UseShellExecute = false;
-                process.StartInfo.Arguments = "";
-                process.StartInfo.FileName = binName;
+                process.StartInfo.Arguments = String.Format("-c \"{0}\"", command);
+                process.StartInfo.FileName = "/bin/sh";
 
                 // enable raising events because Process does not raise events by default
                 process.EnableRaisingEvents = true;
@@ -143,7 +73,7 @@ namespace Runner
                 }
                 catch (System.ComponentModel.Win32Exception)
                 {
-                    throw new Exception("Unable to run process: " + binName);
+                    throw new Exception("Unable to run: " + command);
                 }
 
                 process.BeginOutputReadLine();
@@ -166,7 +96,7 @@ namespace Runner
                 return queue.ReceiveAsync().Result;
             }
 
-            public MICore.Results Expect(string text, int timeoutSec = 10)
+            public MICore.Results Expect(string text, int timeoutSec)
             {
                 TimeSpan timeSpan = TimeSpan.FromSeconds(timeoutSec);
 
@@ -236,7 +166,7 @@ namespace Runner
             public int GetCurrentLine([CallerLineNumber] int line = 0) { return line; }
 
             public void Send(string s) => processInfo.Send(s);
-            public MICore.Results Expect(string s) => processInfo.Expect(s);
+            public MICore.Results Expect(string s, int timeoutSec = 10) => processInfo.Expect(s, timeoutSec);
             public readonly string TestSource;
             public readonly string TestBin;
             public readonly ITestOutputHelper Output;
@@ -262,7 +192,7 @@ namespace Runner
 
                 string key = match.Groups[1].ToString().Trim();
                 if (Tags.ContainsKey(key))
-                    throw new Exception(String.Format("Tag '{0}' presented more than once in file '{1}'", key, srcName));
+                    throw new Exception(String.Format("Tag '{0}' is present more than once in file '{1}'", key, srcName));
                 Tags[key] = lineCounter;
             }
 
@@ -299,8 +229,21 @@ namespace Runner
             public string Text { get => allComments.ToString(); }
         }
 
+        class TestData
+        {
+            public TestData(string dllPath, string srcFilePath)
+            {
+                this.dllPath = dllPath;
+                this.srcFilePath = srcFilePath;
+            }
+            public string srcFilePath { get; }
+            public string dllPath { get; }
+
+        }
+
         private readonly ITestOutputHelper output;
-        private string debugger;
+        private string debuggerCommand;
+        private Dictionary<string, TestData> allTests;
         public TestRunner(ITestOutputHelper output)
         {
             this.output = output;
@@ -312,18 +255,47 @@ namespace Runner
             string path = Uri.UnescapeDataString(uri.Path);
             var d = new DirectoryInfo(Path.GetDirectoryName(path));
 
-            // Get path to runner binaries
-            this.debugger = Path.Combine(d.Parent.Parent.Parent.Parent.Parent.FullName, "bin", "netcoredbg");
+            var pipe = Environment.GetEnvironmentVariable("PIPE");
+            if (pipe != null)
+            {
+                this.debuggerCommand = pipe;
+            }
+            else
+            {
+                this.debuggerCommand = Path.Combine(d.Parent.Parent.Parent.Parent.Parent.FullName, "bin", "netcoredbg");
+            }
+
+            var testDir = Environment.GetEnvironmentVariable("TESTDIR");
+
+            // Find all dlls
+            var baseDir = d.Parent.Parent.Parent.Parent;
+            var files = Directory.GetFiles(baseDir.FullName, "*.dll", SearchOption.AllDirectories);
+
+            allTests = new Dictionary<string, TestData>();
+
+            foreach (var dll in files)
+            {
+                string testName = dll.Substring(0, dll.Length - 4);
+                var configName = new FileInfo(testName + ".runtimeconfig.json");
+                if (configName.Exists)
+                {
+                    var csFiles = Directory.GetFiles(configName.Directory.Parent.Parent.Parent.FullName, "*.cs");
+
+                    string testDll = testDir != null ? Path.Combine(testDir, Path.GetFileName(dll)) : dll;
+
+                    allTests[Path.GetFileName(testName)] = new TestData(testDll, csFiles[0]);
+                }
+            }
         }
 
-        [Theory]
-        [MemberData(nameof(Data))]
-        public void ExecuteTest(Labeled<(string binName, string srcName)> t)
+        private void ExecuteTest([CallerMemberName] string name = null)
         {
-            var lines = CollectTags(t.Data.srcName);
+            var data = allTests[name];
+
+            var lines = CollectTags(data.srcFilePath);
 
-            var tree = CSharpSyntaxTree.ParseText(File.ReadAllText(t.Data.srcName))
-                                       .WithFilePath(t.Data.srcName);
+            var tree = CSharpSyntaxTree.ParseText(File.ReadAllText(data.srcFilePath))
+                                       .WithFilePath(data.srcFilePath);
 
             var cc = new CommentCollector();
             cc.Visit(tree.GetRoot());
@@ -342,14 +314,14 @@ namespace Runner
             );
             script.Compile();
 
-            ProcessInfo processInfo = new ProcessInfo(debugger, output);
+            ProcessInfo processInfo = new ProcessInfo(debuggerCommand, output);
 
             // Globals, to use inside test case
             TestCaseGlobals globals = new TestCaseGlobals(
                 processInfo,
                 lines,
-                t.Data.srcName,
-                t.Data.binName,
+                data.srcFilePath,
+                data.dllPath,
                 output
             );
 
diff --git a/tests/simple_stepping/Program.cs b/tests/simple_stepping/Program.cs
deleted file mode 100644 (file)
index 91c282d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Send("1-file-exec-and-symbols dotnet");
-Send("2-exec-arguments " + TestBin);
-Send("3-exec-run");
-
-var r = Expect("*stopped");
-Assert.Equal(r.FindString("reason"), "entry-point-hit");
-Assert.Equal(r.Find("frame").FindInt("line"), Lines["START"]);
-
-Send("4-exec-step");
-r = Expect("*stopped");
-Assert.Equal(r.FindString("reason"), "end-stepping-range");
-Assert.Equal(r.Find("frame").FindInt("line"), Lines["STEP1"]);
-
-Send("5-exec-step");
-r = Expect("*stopped");
-Assert.Equal(r.FindString("reason"), "end-stepping-range");
-Assert.Equal(r.Find("frame").FindInt("line"), Lines["STEP2"]);
-
-Send("6-gdb-exit");
-*/
-
-using System;
-
-namespace simple_stepping
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {                                      // //@START@
-            Console.WriteLine("Hello World!"); // //@STEP1@
-        }                                      // //@STEP2@
-    }
-}
diff --git a/tests/simple_stepping/simple_stepping.csproj b/tests/simple_stepping/simple_stepping.csproj
deleted file mode 100644 (file)
index ce1697a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.0</TargetFramework>
-  </PropertyGroup>
-
-</Project>
diff --git a/tests/tests.sln b/tests/tests.sln
new file mode 100644 (file)
index 0000000..144e80b
--- /dev/null
@@ -0,0 +1,62 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "runner", "runner\runner.csproj", "{E042BA1C-E2FB-41DF-AA94-9FACCF22D358}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ValuesTest", "ValuesTest\ValuesTest.csproj", "{7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleSteppingTest", "SimpleSteppingTest\SimpleSteppingTest.csproj", "{E0060C4B-2D50-4912-A2E6-29E897ED1767}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Debug|x64 = Debug|x64
+               Debug|x86 = Debug|x86
+               Release|Any CPU = Release|Any CPU
+               Release|x64 = Release|x64
+               Release|x86 = Release|x86
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|x64.ActiveCfg = Debug|x64
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|x64.Build.0 = Debug|x64
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|x86.ActiveCfg = Debug|x86
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Debug|x86.Build.0 = Debug|x86
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|Any CPU.Build.0 = Release|Any CPU
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|x64.ActiveCfg = Release|x64
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|x64.Build.0 = Release|x64
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|x86.ActiveCfg = Release|x86
+               {E042BA1C-E2FB-41DF-AA94-9FACCF22D358}.Release|x86.Build.0 = Release|x86
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|x64.ActiveCfg = Debug|x64
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|x64.Build.0 = Debug|x64
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|x86.ActiveCfg = Debug|x86
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Debug|x86.Build.0 = Debug|x86
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|Any CPU.Build.0 = Release|Any CPU
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|x64.ActiveCfg = Release|x64
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|x64.Build.0 = Release|x64
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|x86.ActiveCfg = Release|x86
+               {7A4F31DE-22C7-4662-A6D4-63D1DCDD6D6E}.Release|x86.Build.0 = Release|x86
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|x64.ActiveCfg = Debug|x64
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|x64.Build.0 = Debug|x64
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|x86.ActiveCfg = Debug|x86
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Debug|x86.Build.0 = Debug|x86
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|Any CPU.Build.0 = Release|Any CPU
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|x64.ActiveCfg = Release|x64
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|x64.Build.0 = Release|x64
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|x86.ActiveCfg = Release|x86
+               {E0060C4B-2D50-4912-A2E6-29E897ED1767}.Release|x86.Build.0 = Release|x86
+       EndGlobalSection
+EndGlobal
diff --git a/tests/values/Program.cs b/tests/values/Program.cs
deleted file mode 100644 (file)
index 1f10ef1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-using System;
-
-Send("1-file-exec-and-symbols dotnet");
-Send("2-exec-arguments " + TestBin);
-Send("3-exec-run");
-
-var r = Expect("*stopped");
-Assert.Equal("entry-point-hit", r.FindString("reason"));
-Assert.Equal(Lines["START"], r.Find("frame").FindInt("line"));
-
-Send(String.Format("4-break-insert -f {0}:{1}", TestSource, Lines["BREAK"]));
-r = Expect("4^done");
-
-Send("5-exec-continue");
-*/
-
-using System;
-
-namespace values
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {              // //@START@
-            decimal d = 12345678901234567890123456m;
-            int x = 1; // //@BREAK@
-            /*
-r = Expect("*stopped");
-Assert.Equal("breakpoint-hit", r.FindString("reason"));
-Assert.Equal(Lines["BREAK"], r.Find("frame").FindInt("line"));
-
-Send(String.Format("6-var-create - * \"{0}\"", "d"));
-r = Expect("6^done");
-Assert.Equal("12345678901234567890123456", r.FindString("value"));
-Assert.Equal("d", r.FindString("exp"));
-Assert.Equal("0", r.FindString("numchild"));
-Assert.Equal("decimal", r.FindString("type"));
-             */
-        }
-    }
-}
-/*
-Send("7-exec-continue");
-r = Expect("*stopped");
-Assert.Equal("exited", r.FindString("reason"));
-*/
diff --git a/tests/values/values.csproj b/tests/values/values.csproj
deleted file mode 100644 (file)
index ce1697a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.0</TargetFramework>
-  </PropertyGroup>
-
-</Project>