From 2abbcef3fdcee1933f56e729313476bdc2b5debf Mon Sep 17 00:00:00 2001 From: nirinchev Date: Thu, 20 Jul 2023 21:27:12 +0200 Subject: [PATCH 1/5] Add more extensive coverage for Task.Timeout --- Tests/Realm.Tests/Database/APITests.cs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/Tests/Realm.Tests/Database/APITests.cs b/Tests/Realm.Tests/Database/APITests.cs index e859b40619..1d7cba8a92 100644 --- a/Tests/Realm.Tests/Database/APITests.cs +++ b/Tests/Realm.Tests/Database/APITests.cs @@ -92,14 +92,27 @@ public void TestTaskTimeout() { TestHelpers.RunAsyncTest(async () => { - try - { - await Task.Delay(100).Timeout(10); - } - catch (Exception ex) + await TestHelpers.AssertThrows(() => GetVoidTask().Timeout(10)); + + var ex = await TestHelpers.AssertThrows(() => GetVoidTask().Timeout(10, detail: "some detail")); + Assert.That(ex.Message, Does.Contain("some detail")); + + var errorTask = Task.FromException(new ArgumentException("invalid argument")); + var ex2 = await TestHelpers.AssertThrows(() => GetVoidTask().Timeout(10, errorTask)); + Assert.That(ex2.Message, Does.Contain("invalid argument")); + + await TestHelpers.AssertThrows(() => GetIntTask().Timeout(10)); + + var ex3 = await TestHelpers.AssertThrows(() => GetIntTask().Timeout(10, detail: "another detail")); + Assert.That(ex3.Message, Does.Contain("another detail")); + + static async Task GetIntTask() { - Assert.That(ex, Is.TypeOf()); + await Task.Delay(100); + return 5; } + + static Task GetVoidTask() => Task.Delay(100); }); } From 48e5772505746108ade6ea0c304a3424d322629a Mon Sep 17 00:00:00 2001 From: Nikola Irinchev Date: Thu, 20 Jul 2023 22:42:57 +0200 Subject: [PATCH 2/5] Try to set compare-ref on the coveralls action --- .github/templates/common.lib.yml | 2 +- .github/templates/test-code-coverage.yml | 1 + .github/workflows/test-code-coverage.yml | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/templates/common.lib.yml b/.github/templates/common.lib.yml index b40468549a..fe59fa01ac 100644 --- a/.github/templates/common.lib.yml +++ b/.github/templates/common.lib.yml @@ -27,7 +27,7 @@ #@ actionDockerLayerCaching = "jpribyl/action-docker-layer-caching@c632825d12ec837065f49726ea27ddd40bcc7894" #! 0.1.1 #@ actionDockerBuild = "docker/build-push-action@6e95f19fb8c9e00a1a391941edbc0ae30c1799f7" #! 2.7.0 #@ actionDockerRun = "addnab/docker-run-action@3e77f186b7a929ef010f183a9e24c0f9955ea609" #! v3 -#@ actionCoveralls = "coverallsapp/github-action@ca2a9dd5a20b12fa9aa428e0a6418a60a38bab22" #! v2.1.1 +#@ actionCoveralls = "coverallsapp/github-action@95b1a2355bd0e526ad2fd62da9fd386ad4c98474" #! v2.2.1 #@ actionDeleteArtifact = "geekyeggo/delete-artifact@dc8092f14c4245ef6a3501b1669b171c12899167" #! v1 #@ actionGithubRelease = "ncipollo/release-action@3ac4132803a6419fa2a7f4e9dbd1d93fceb690b9" #! v1.8.8 #@ actionDownloadAllArtifacts = "dawidd6/action-download-artifact@46b4ae883bf0726f5949d025d31cb62c7a5ac70c" #! v2.14.1 diff --git a/.github/templates/test-code-coverage.yml b/.github/templates/test-code-coverage.yml index 68d8276755..55ba7523e8 100644 --- a/.github/templates/test-code-coverage.yml +++ b/.github/templates/test-code-coverage.yml @@ -27,6 +27,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} + compare-ref: ${{ github.event.pull_request.base.ref }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - #@ publishTestsResults("TestResults.Linux.xml", "Code Coverage") diff --git a/.github/workflows/test-code-coverage.yml b/.github/workflows/test-code-coverage.yml index 12f25b33ae..b7efec5664 100755 --- a/.github/workflows/test-code-coverage.yml +++ b/.github/workflows/test-code-coverage.yml @@ -163,11 +163,12 @@ jobs: run: ./tools/coverlet ${{ steps.dotnet-publish.outputs.executable-path }} -t ${{ steps.dotnet-publish.outputs.executable-path }}/Realm.Tests -a '--result=TestResults.Linux.xml --labels=After --baasurl=${{ inputs.realmUrl }} --baascluster=${{ inputs.clusterName }} --baasapikey=${{ secrets.AtlasPublicKey}} --baasprivateapikey=${{ secrets.AtlasPrivateKey}} --baasprojectid=${{ secrets.AtlasProjectId }} --baasdifferentiator=code-coverage' -f lcov -o ./report.lcov --exclude '[Realm.Tests]*' --exclude '[Realm.Fody]*' --exclude '[Realm.PlatformHelpers]*' - name: Publish Coverage id: publish-coveralls - uses: coverallsapp/github-action@ca2a9dd5a20b12fa9aa428e0a6418a60a38bab22 + uses: coverallsapp/github-action@95b1a2355bd0e526ad2fd62da9fd386ad4c98474 with: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} + compare-ref: ${{ github.event.pull_request.base.ref }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - name: Publish Unit Test Results From 7e003d1a7465ffd6a9ed0849a19671cd7ab180b4 Mon Sep 17 00:00:00 2001 From: Nikola Irinchev Date: Fri, 21 Jul 2023 00:18:57 +0200 Subject: [PATCH 3/5] Remove compare-ref --- .github/templates/test-code-coverage.yml | 1 - .github/workflows/test-code-coverage.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/templates/test-code-coverage.yml b/.github/templates/test-code-coverage.yml index 55ba7523e8..68d8276755 100644 --- a/.github/templates/test-code-coverage.yml +++ b/.github/templates/test-code-coverage.yml @@ -27,7 +27,6 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} - compare-ref: ${{ github.event.pull_request.base.ref }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - #@ publishTestsResults("TestResults.Linux.xml", "Code Coverage") diff --git a/.github/workflows/test-code-coverage.yml b/.github/workflows/test-code-coverage.yml index b7efec5664..1498bf7313 100755 --- a/.github/workflows/test-code-coverage.yml +++ b/.github/workflows/test-code-coverage.yml @@ -168,7 +168,6 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} - compare-ref: ${{ github.event.pull_request.base.ref }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - name: Publish Unit Test Results From c1770dcae26b420f647dc08c69757470cc215ebf Mon Sep 17 00:00:00 2001 From: Nikola Irinchev Date: Fri, 21 Jul 2023 01:50:29 +0200 Subject: [PATCH 4/5] Add compare-sha --- .github/templates/test-code-coverage.yml | 1 + .github/workflows/test-code-coverage.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/templates/test-code-coverage.yml b/.github/templates/test-code-coverage.yml index 68d8276755..54b7bd534c 100644 --- a/.github/templates/test-code-coverage.yml +++ b/.github/templates/test-code-coverage.yml @@ -27,6 +27,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} + compare-sha: ${{ github.event.pull_request.base.sha }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - #@ publishTestsResults("TestResults.Linux.xml", "Code Coverage") diff --git a/.github/workflows/test-code-coverage.yml b/.github/workflows/test-code-coverage.yml index 1498bf7313..426c53c9d1 100755 --- a/.github/workflows/test-code-coverage.yml +++ b/.github/workflows/test-code-coverage.yml @@ -168,6 +168,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} file: ./report.lcov git-commit: ${{ github.event.pull_request.head.sha }} + compare-sha: ${{ github.event.pull_request.base.sha }} - name: Output Coveralls response run: echo ${{ steps.publish-coveralls.outputs.coveralls-api-result }} - name: Publish Unit Test Results From fa07be0e691aa3568e891192ca2e1ffc74ed4519 Mon Sep 17 00:00:00 2001 From: nirinchev Date: Fri, 21 Jul 2023 12:33:24 +0200 Subject: [PATCH 5/5] Cover final line --- Tests/Realm.Tests/Database/APITests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Tests/Realm.Tests/Database/APITests.cs b/Tests/Realm.Tests/Database/APITests.cs index 1d7cba8a92..8075efa8d8 100644 --- a/Tests/Realm.Tests/Database/APITests.cs +++ b/Tests/Realm.Tests/Database/APITests.cs @@ -106,6 +106,9 @@ public void TestTaskTimeout() var ex3 = await TestHelpers.AssertThrows(() => GetIntTask().Timeout(10, detail: "another detail")); Assert.That(ex3.Message, Does.Contain("another detail")); + var ex4 = await TestHelpers.AssertThrows(() => GetFaultedIntTask().Timeout(1000)); + Assert.That(ex4.Message, Does.Contain("super invalid")); + static async Task GetIntTask() { await Task.Delay(100); @@ -113,6 +116,12 @@ static async Task GetIntTask() } static Task GetVoidTask() => Task.Delay(100); + + static async Task GetFaultedIntTask() + { + await Task.Delay(1); + throw new ArgumentException("super invalid"); + } }); }