From 2973417b6eb8aed77bb38ec6c7aec8182648bff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Soto?= Date: Tue, 2 Aug 2022 10:03:18 -0500 Subject: [PATCH 1/2] package tests --- debian/tests/TestProject/Main.cs | 30 +++++++++++++++++++++ debian/tests/TestProject/TestProject.csproj | 10 +++++++ debian/tests/basic-checks | 3 ++- debian/tests/basic-commands | 3 ++- debian/tests/basic-sln | 20 ++++++++++++++ debian/tests/control | 8 ++++++ debian/tests/csproj-with-nuget | 17 ++++++++++++ 7 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 debian/tests/TestProject/Main.cs create mode 100644 debian/tests/TestProject/TestProject.csproj create mode 100644 debian/tests/basic-sln create mode 100644 debian/tests/csproj-with-nuget diff --git a/debian/tests/TestProject/Main.cs b/debian/tests/TestProject/Main.cs new file mode 100644 index 0000000000..9bd1c60f76 --- /dev/null +++ b/debian/tests/TestProject/Main.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Google.Apis; + +namespace TestProject +{ + class Program + { + static void Main(string[] args) + { + Stack myStack = new Stack(); + var th = new Thread(()=>WaitAndPrint(myStack)); + th.Start(); + Console.WriteLine("Me first!"); + myStack.Push(1); + Console.WriteLine("Finished tasks: {0}", myStack.Count); + Thread.Sleep(1000); + Console.WriteLine("Finished tasks: {0}", myStack.Count); + } + + private static void WaitAndPrint(Stack myStack){ + Thread.Sleep(1000); + Console.WriteLine("Me second!"); + myStack.Push(2); + } + } +} diff --git a/debian/tests/TestProject/TestProject.csproj b/debian/tests/TestProject/TestProject.csproj new file mode 100644 index 0000000000..74abf5c976 --- /dev/null +++ b/debian/tests/TestProject/TestProject.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/debian/tests/basic-checks b/debian/tests/basic-checks index b6bfe23f48..a02dbc6718 100644 --- a/debian/tests/basic-checks +++ b/debian/tests/basic-checks @@ -12,4 +12,5 @@ BINARY="/usr/bin/dotnet" echo "Checking binary is present and its usefulness" test -e "${BINARY}" dotnet --version -dotnet --info \ No newline at end of file +dotnet --info +dotnet sdk check diff --git a/debian/tests/basic-commands b/debian/tests/basic-commands index 4ddc02a59e..e3660f2b0c 100644 --- a/debian/tests/basic-commands +++ b/debian/tests/basic-commands @@ -8,4 +8,5 @@ set -eo pipefail dotnet new console --name TestConsole cd TestConsole -dotnet run | grep -qF "Hello, World!" \ No newline at end of file +dotnet run | grep -qF "Hello, World!" +cd .. diff --git a/debian/tests/basic-sln b/debian/tests/basic-sln new file mode 100644 index 0000000000..b40ea5e3e5 --- /dev/null +++ b/debian/tests/basic-sln @@ -0,0 +1,20 @@ +#!/bin/bash + +################################## +### Check basic sln commands ### +################################## + +set -eo pipefail + +mkdir sampleTest +cd sampleTest +dotnet new console +dotnet new sln +dotnet sln sampleTest.sln add sampleTest.csproj +dotnet build sampleTest.sln +cd bin/Debug/net6.0/ +output=$(./sampleTest) +if [ "$output" != "Hello, World!" ]; then + echo 'Test did not output "Hello, World!"' + exit 1 +fi diff --git a/debian/tests/control b/debian/tests/control index e1a6b6701f..b3ce3b4b3d 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -1,3 +1,11 @@ Tests: basic-checks basic-commands Depends: @ Restrictions: superficial + +Tests: basic-sln +Depends: @ +Restrictions: superficial + +Tests: csproj-with-nuget +Depends: @ +Restrictions: superficial isolation-container needs-internet diff --git a/debian/tests/csproj-with-nuget b/debian/tests/csproj-with-nuget new file mode 100644 index 0000000000..40a3ca172a --- /dev/null +++ b/debian/tests/csproj-with-nuget @@ -0,0 +1,17 @@ +#!/bin/bash + +################################## +### Check basic nuget commands ### +################################## + +set -eo pipefail + +cd "$(dirname "${0}")"/TestProject +dotnet add TestProject.csproj package Google.Apis +output=$(dotnet run | wc -l) +if [ "$output" != "4" ]; then + echo 'Test project did not work' + exit 1 +fi +dotnet remove TestProject.csproj package Google.Apis +cd .. From 7a4a662afc14d01c65da0dd6edf0ea9a16513e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Soto?= Date: Fri, 5 Aug 2022 12:01:00 -0500 Subject: [PATCH 2/2] refactor tests to combine basic commands and sln --- debian/tests/basic-commands | 10 +++++++++- debian/tests/basic-sln | 20 -------------------- debian/tests/control | 4 ---- 3 files changed, 9 insertions(+), 25 deletions(-) delete mode 100644 debian/tests/basic-sln diff --git a/debian/tests/basic-commands b/debian/tests/basic-commands index e3660f2b0c..fd0cb3af9b 100644 --- a/debian/tests/basic-commands +++ b/debian/tests/basic-commands @@ -8,5 +8,13 @@ set -eo pipefail dotnet new console --name TestConsole cd TestConsole -dotnet run | grep -qF "Hello, World!" +dotnet new sln +dotnet sln TestConsole.sln add TestConsole.csproj +dotnet build TestConsole.sln +cd bin/Debug/net6.0/ +output=$(./TestConsole) +if [ "$output" != "Hello, World!" ]; then + echo 'Test did not output "Hello, World!"' + exit 1 +fi cd .. diff --git a/debian/tests/basic-sln b/debian/tests/basic-sln deleted file mode 100644 index b40ea5e3e5..0000000000 --- a/debian/tests/basic-sln +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -################################## -### Check basic sln commands ### -################################## - -set -eo pipefail - -mkdir sampleTest -cd sampleTest -dotnet new console -dotnet new sln -dotnet sln sampleTest.sln add sampleTest.csproj -dotnet build sampleTest.sln -cd bin/Debug/net6.0/ -output=$(./sampleTest) -if [ "$output" != "Hello, World!" ]; then - echo 'Test did not output "Hello, World!"' - exit 1 -fi diff --git a/debian/tests/control b/debian/tests/control index b3ce3b4b3d..8689f9b79f 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -2,10 +2,6 @@ Tests: basic-checks basic-commands Depends: @ Restrictions: superficial -Tests: basic-sln -Depends: @ -Restrictions: superficial - Tests: csproj-with-nuget Depends: @ Restrictions: superficial isolation-container needs-internet