diff --git a/Dockerfile b/Dockerfile index b1403a9..a7902b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build ARG TARGETARCH WORKDIR /tmp @@ -22,6 +22,7 @@ RUN dotnet add package FSharp.Core -v 6.0.1 RUN dotnet add package FSharp.Core -v 7.0.400 RUN dotnet add package FSharp.Core -v 8.0.101 RUN dotnet add package FSharp.Core -v 8.0.403 +RUN dotnet add package FSharp.Core -v 9.0.201 RUN dotnet add package FParsec -v 1.1.1 RUN dotnet add package FsToolkit.ErrorHandling -v 4.15.2 @@ -36,7 +37,7 @@ COPY src/Exercism.TestRunner.FSharp/ ./ RUN dotnet publish -a $TARGETARCH -c Release -o /opt/test-runner --no-restore # Build runtime image -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS runtime +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS runtime ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false ENV DOTNET_ROLL_FORWARD=Major diff --git a/src/Exercism.TestRunner.FSharp/Exercism.TestRunner.FSharp.fsproj b/src/Exercism.TestRunner.FSharp/Exercism.TestRunner.FSharp.fsproj index 4a11039..9533b48 100644 --- a/src/Exercism.TestRunner.FSharp/Exercism.TestRunner.FSharp.fsproj +++ b/src/Exercism.TestRunner.FSharp/Exercism.TestRunner.FSharp.fsproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 @@ -23,7 +23,7 @@ - + diff --git a/src/Exercism.TestRunner.FSharp/Rewrite.fs b/src/Exercism.TestRunner.FSharp/Rewrite.fs index 0cf2379..e9e2510 100644 --- a/src/Exercism.TestRunner.FSharp/Rewrite.fs +++ b/src/Exercism.TestRunner.FSharp/Rewrite.fs @@ -72,9 +72,10 @@ let private rewriteProjectFile (context: TestRunContext) = let originalProjectFile = File.ReadAllText(context.ProjectFile) let rewrittenProjectFile = originalProjectFile - .Replace("net5.0", "net8.0") - .Replace("net6.0", "net8.0") - .Replace("net7.0", "net8.0") + .Replace("net5.0", "net9.0") + .Replace("net6.0", "net9.0") + .Replace("net7.0", "net9.0") + .Replace("net8.0", "net9.0") originalProjectFile, rewrittenProjectFile let rewriteTests (context: TestRunContext) = diff --git a/tests/AllTestsWithTask/AllTestsWithTask.fsproj b/tests/AllTestsWithTask/AllTestsWithTask.fsproj index 3efb84f..5f87bb1 100644 --- a/tests/AllTestsWithTask/AllTestsWithTask.fsproj +++ b/tests/AllTestsWithTask/AllTestsWithTask.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/ClassBasedTests/ClassBasedTests.fsproj b/tests/ClassBasedTests/ClassBasedTests.fsproj index 98b0d99..f7c6230 100644 --- a/tests/ClassBasedTests/ClassBasedTests.fsproj +++ b/tests/ClassBasedTests/ClassBasedTests.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/DifferentTestCodeFormats/DifferentTestCodeFormats.fsproj b/tests/DifferentTestCodeFormats/DifferentTestCodeFormats.fsproj index 5856853..1cf3f4f 100644 --- a/tests/DifferentTestCodeFormats/DifferentTestCodeFormats.fsproj +++ b/tests/DifferentTestCodeFormats/DifferentTestCodeFormats.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/DifferentTypesOfTests/DifferentTypesOfTests.fsproj b/tests/DifferentTypesOfTests/DifferentTypesOfTests.fsproj index 947130b..a96d5ee 100644 --- a/tests/DifferentTypesOfTests/DifferentTypesOfTests.fsproj +++ b/tests/DifferentTypesOfTests/DifferentTypesOfTests.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/DotnetEightProject/DotnetEightProject.fs b/tests/DotnetEightProject/DotnetEightProject.fs new file mode 100644 index 0000000..863d2cc --- /dev/null +++ b/tests/DotnetEightProject/DotnetEightProject.fs @@ -0,0 +1,7 @@ +module DotnetSixProject + +let add x y = x + y + +let sub x y = x - y + +let mul x y = x * y diff --git a/tests/DotnetEightProject/DotnetEightProject.fsproj b/tests/DotnetEightProject/DotnetEightProject.fsproj new file mode 100644 index 0000000..96beb26 --- /dev/null +++ b/tests/DotnetEightProject/DotnetEightProject.fsproj @@ -0,0 +1,22 @@ + + + + net8.0 + + false + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/DotnetEightProject/DotnetEightProjectTests.fs b/tests/DotnetEightProject/DotnetEightProjectTests.fs new file mode 100644 index 0000000..fd93a7a --- /dev/null +++ b/tests/DotnetEightProject/DotnetEightProjectTests.fs @@ -0,0 +1,15 @@ +module DotnetSixProjectTests + +open Xunit +open FsUnit.Xunit +open Exercism.Tests +open DotnetSixProject + +[] +let ``Add should add numbers`` () = add 1 1 |> should equal 2 + +[] +let ``Sub should subtract numbers`` () = sub 7 3 |> should equal 4 + +[] +let ``Mul should multiply numbers`` () = mul 2 3 |> should equal 6 diff --git a/tests/DotnetEightProject/expected_results.json b/tests/DotnetEightProject/expected_results.json new file mode 100644 index 0000000..ce56be2 --- /dev/null +++ b/tests/DotnetEightProject/expected_results.json @@ -0,0 +1,21 @@ +{ + "version": 3, + "status": "pass", + "tests": [ + { + "name": "Add should add numbers", + "status": "pass", + "test_code": "add 1 1 |\u003E should equal 2" + }, + { + "name": "Sub should subtract numbers", + "status": "pass", + "test_code": "sub 7 3 |\u003E should equal 4" + }, + { + "name": "Mul should multiply numbers", + "status": "pass", + "test_code": "mul 2 3 |\u003E should equal 6" + } + ] +} \ No newline at end of file diff --git a/tests/MultipleCompileErrors/MultipleCompileErrors.fsproj b/tests/MultipleCompileErrors/MultipleCompileErrors.fsproj index c4bcbf5..9c2f466 100644 --- a/tests/MultipleCompileErrors/MultipleCompileErrors.fsproj +++ b/tests/MultipleCompileErrors/MultipleCompileErrors.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/MultipleTestsWithAllPasses/MultipleTestsWithAllPasses.fsproj b/tests/MultipleTestsWithAllPasses/MultipleTestsWithAllPasses.fsproj index fc69380..7af907d 100644 --- a/tests/MultipleTestsWithAllPasses/MultipleTestsWithAllPasses.fsproj +++ b/tests/MultipleTestsWithAllPasses/MultipleTestsWithAllPasses.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/MultipleTestsWithMultipleFails/MultipleTestsWithMultipleFails.fsproj b/tests/MultipleTestsWithMultipleFails/MultipleTestsWithMultipleFails.fsproj index 188305b..ea9cfc5 100644 --- a/tests/MultipleTestsWithMultipleFails/MultipleTestsWithMultipleFails.fsproj +++ b/tests/MultipleTestsWithMultipleFails/MultipleTestsWithMultipleFails.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/MultipleTestsWithSingleFail/MultipleTestsWithSingleFail.fsproj b/tests/MultipleTestsWithSingleFail/MultipleTestsWithSingleFail.fsproj index 0c45b73..1f6471f 100644 --- a/tests/MultipleTestsWithSingleFail/MultipleTestsWithSingleFail.fsproj +++ b/tests/MultipleTestsWithSingleFail/MultipleTestsWithSingleFail.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/MultipleTestsWithTestOutput/MultipleTestsWithTestOutput.fsproj b/tests/MultipleTestsWithTestOutput/MultipleTestsWithTestOutput.fsproj index d00b37f..59f854b 100644 --- a/tests/MultipleTestsWithTestOutput/MultipleTestsWithTestOutput.fsproj +++ b/tests/MultipleTestsWithTestOutput/MultipleTestsWithTestOutput.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/MultipleTestsWithTestOutputExceedingLimit/MultipleTestsWithTestOutputExceedingLimit.fsproj b/tests/MultipleTestsWithTestOutputExceedingLimit/MultipleTestsWithTestOutputExceedingLimit.fsproj index 7695de6..9fada42 100644 --- a/tests/MultipleTestsWithTestOutputExceedingLimit/MultipleTestsWithTestOutputExceedingLimit.fsproj +++ b/tests/MultipleTestsWithTestOutputExceedingLimit/MultipleTestsWithTestOutputExceedingLimit.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/NotImplemented/NotImplemented.fsproj b/tests/NotImplemented/NotImplemented.fsproj index 3b28590..6b5505f 100644 --- a/tests/NotImplemented/NotImplemented.fsproj +++ b/tests/NotImplemented/NotImplemented.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/QuotedAndNonQuotedTests/QuotedAndNonQuotedTests.fsproj b/tests/QuotedAndNonQuotedTests/QuotedAndNonQuotedTests.fsproj index 6bdf6f4..db57b83 100644 --- a/tests/QuotedAndNonQuotedTests/QuotedAndNonQuotedTests.fsproj +++ b/tests/QuotedAndNonQuotedTests/QuotedAndNonQuotedTests.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/SingleCompileError/SingleCompileError.fsproj b/tests/SingleCompileError/SingleCompileError.fsproj index 7928d23..cf8c5af 100644 --- a/tests/SingleCompileError/SingleCompileError.fsproj +++ b/tests/SingleCompileError/SingleCompileError.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/SingleTestThatFails/SingleTestThatFails.fsproj b/tests/SingleTestThatFails/SingleTestThatFails.fsproj index 76d8e7e..29f7c3e 100644 --- a/tests/SingleTestThatFails/SingleTestThatFails.fsproj +++ b/tests/SingleTestThatFails/SingleTestThatFails.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/SingleTestThatPasses/SingleTestThatPasses.fsproj b/tests/SingleTestThatPasses/SingleTestThatPasses.fsproj index 8eeddac..7492e2f 100644 --- a/tests/SingleTestThatPasses/SingleTestThatPasses.fsproj +++ b/tests/SingleTestThatPasses/SingleTestThatPasses.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/SomeTestsWithTask/SomeTestsWithTask.fsproj b/tests/SomeTestsWithTask/SomeTestsWithTask.fsproj index e3e0928..d90d798 100644 --- a/tests/SomeTestsWithTask/SomeTestsWithTask.fsproj +++ b/tests/SomeTestsWithTask/SomeTestsWithTask.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/TestWithParentheses/TestWithParentheses.fsproj b/tests/TestWithParentheses/TestWithParentheses.fsproj index 45a0597..6968057 100644 --- a/tests/TestWithParentheses/TestWithParentheses.fsproj +++ b/tests/TestWithParentheses/TestWithParentheses.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/UseCultureAttribute/UseCultureAttribute.fsproj b/tests/UseCultureAttribute/UseCultureAttribute.fsproj index a4bdd7b..c67cdc0 100644 --- a/tests/UseCultureAttribute/UseCultureAttribute.fsproj +++ b/tests/UseCultureAttribute/UseCultureAttribute.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false diff --git a/tests/Warnings/Warnings.fsproj b/tests/Warnings/Warnings.fsproj index 038fa1e..82b88d3 100644 --- a/tests/Warnings/Warnings.fsproj +++ b/tests/Warnings/Warnings.fsproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 false