diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ab8a0c39b12..2db273926f5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -95,6 +95,56 @@ jobs:
run: dotnet restore
- name: Build Garnet
run: dotnet build --configuration ${{ matrix.configuration }}
+
+ - name: Verify Allure wiring (${{ matrix.test }})
+ shell: pwsh
+ run: |
+ $asmPath = "${{ github.workspace }}/test/${{ matrix.test }}/bin/${{ matrix.configuration }}/${{ matrix.framework }}/${{ matrix.test }}.dll"
+ $asm = [System.Reflection.Assembly]::LoadFrom($asmPath)
+
+ # When using .Net 9.0 it tries to resolve every referenced type in that assembly and some dependencies are missing by design so pops exception.
+ # Since we don't want to fail on every 9.0 run (even when has Allure inheritance), we catch it here.
+ try {
+ $types = $asm.GetTypes()
+ } catch [System.Reflection.ReflectionTypeLoadException] {
+ # Keep only successfully loaded types, skip nulls
+ $types = $_.Exception.Types | Where-Object { $_ -ne $null }
+ }
+ $allureBase = $types | Where-Object { $_.Name -eq "AllureTestBase" }
+
+ $bad = @()
+ foreach ($t in $types) {
+ # Detect NUnit test fixtures by attribute names
+ $isFixture = $t.GetCustomAttributes($true) |
+ Where-Object { $_.GetType().FullName -eq "NUnit.Framework.TestFixtureAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+ if ($isFixture -eq 0) {
+ $isFixture = $t.GetMethods() |
+ ForEach-Object { $_.GetCustomAttributes($true) } |
+ Where-Object { $_.GetType().FullName -eq "NUnit.Framework.TestAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+ }
+
+ if ($isFixture -gt 0) {
+ $inheritsAllure = $allureBase -and $allureBase.IsAssignableFrom($t)
+ $hasAttr = $t.GetCustomAttributes($true) |
+ Where-Object { $_.GetType().FullName -eq "Allure.NUnit.AllureNUnitAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+
+ if (-not $inheritsAllure -or $hasAttr -eq 0) {
+ $bad += $t.FullName
+ }
+ }
+ }
+
+ if ($bad.Count -gt 0) {
+ Write-Host "These test fixtures are missing Allure setup from $asmPath. See Pull Request Protocol for details on how to set up Allure for new tests. https://microsoft.github.io/garnet/docs/dev/onboarding"
+ $bad | ForEach-Object { Write-Host $_ }
+ exit 1
+ } else {
+ Write-Host "All test fixtures wired to Allure in $asmPath"
+ }
+
- name: Run tests ${{ matrix.test }}
run: dotnet test test/${{ matrix.test }} -f ${{ matrix.framework }} --configuration ${{ matrix.configuration }} --logger "console;verbosity=detailed" --logger trx --results-directory "GarnetTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}-${{ matrix.test }}" -- NUnit.DisplayName=FullName
timeout-minutes: 45
@@ -145,6 +195,54 @@ jobs:
run: dotnet restore
- name: Build Tsavorite
run: dotnet build libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj --configuration ${{ matrix.configuration }}
+
+ - name: Verify Allure wiring (Tsavorite)
+ shell: pwsh
+ run: |
+ $asmPath = "${{ github.workspace }}/libs/storage/Tsavorite/cs/test/bin/${{ matrix.configuration }}/${{ matrix.framework }}/Tsavorite.test.dll"
+ $asm = [System.Reflection.Assembly]::LoadFrom($asmPath)
+
+ # when using .Net 9.0 it tries to resolve every referenced type in that assembly and some dependencies are missing by design so pops exception (we don't need those anyways)
+ try {
+ $types = $asm.GetTypes()
+ } catch [System.Reflection.ReflectionTypeLoadException] {
+ $types = $_.Exception.Types | Where-Object { $_ -ne $null }
+ }
+ $allureBase = $types | Where-Object { $_.Name -eq "AllureTestBase" }
+
+ $bad = @()
+ foreach ($t in $types) {
+ # Detect NUnit test fixtures by attribute names
+ $isFixture = $t.GetCustomAttributes($true) |
+ Where-Object { $_.GetType().FullName -eq "NUnit.Framework.TestFixtureAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+ if ($isFixture -eq 0) {
+ $isFixture = $t.GetMethods() |
+ ForEach-Object { $_.GetCustomAttributes($true) } |
+ Where-Object { $_.GetType().FullName -eq "NUnit.Framework.TestAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+ }
+
+ if ($isFixture -gt 0) {
+ $inheritsAllure = $allureBase -and $allureBase.IsAssignableFrom($t)
+ $hasAttr = $t.GetCustomAttributes($true) |
+ Where-Object { $_.GetType().FullName -eq "Allure.NUnit.AllureNUnitAttribute" } |
+ Measure-Object | Select-Object -ExpandProperty Count
+
+ if (-not $inheritsAllure -or $hasAttr -eq 0) {
+ $bad += $t.FullName
+ }
+ }
+ }
+
+ if ($bad.Count -gt 0) {
+ Write-Host "These test fixtures are missing Allure setup from $asmPath"
+ $bad | ForEach-Object { Write-Host $_ }
+ exit 1
+ } else {
+ Write-Host "All test fixtures wired to Allure in $asmPath"
+ }
+
- name: Run Tsavorite tests
run: dotnet test libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj -f ${{ matrix.framework }} --configuration ${{ matrix.configuration }} --logger "console;verbosity=detailed" --logger trx --results-directory "TsavoriteTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}"
timeout-minutes: 45
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 07937efe168..3271112117f 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -9,95 +9,282 @@ env:
DOTNET_NOLOGO: true
permissions:
- contents: read
+ contents: write
jobs:
- build-test-garnet:
- name: Garnet
+ build-test-all:
+ name: Test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
- os: [ ubuntu-22.04, ubuntu-24.04, windows-2022, windows-2025 ]
+ test: [ 'Garnet.test', 'Garnet.test.cluster', 'Tsavorite.test' ]
+ os: [ ubuntu-latest, windows-latest ]
framework: [ 'net8.0', 'net9.0' ]
configuration: [ 'Debug', 'Release' ]
- test: [ 'Garnet.test', 'Garnet.test.cluster' ]
- steps:
- - name: Check out code
- uses: actions/checkout@v4
- - name: Setup .NET
- uses: actions/setup-dotnet@v4
- - name: Install dependencies
- run: dotnet restore
- - name: Check style format
- run: dotnet format --verify-no-changes --verbosity diagnostic
- - name: Build Garnet
- run: dotnet build --configuration ${{ matrix.configuration }}
- - name: Run tests ${{ matrix.test }}
- run: dotnet test test/${{ matrix.test }} -f ${{ matrix.framework }} --logger "console;verbosity=detailed" --logger trx --results-directory "GarnetTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}-${{ matrix.test }}"
- timeout-minutes: 45
- - name: Upload test results
- uses: actions/upload-artifact@v4
- with:
- name: dotnet-garnet-results-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}-${{ matrix.test }}
- path: GarnetTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}-${{ matrix.test }}
- if: ${{ always() }}
- # Job to build and test Tsavorite code
- build-test-tsavorite:
- name: Tsavorite
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ ubuntu-22.04, ubuntu-24.04, windows-2022, windows-2025 ]
- framework: [ 'net8.0', 'net9.0' ]
- configuration: [ 'Debug', 'Release' ]
steps:
+ - name: Install Allure CLI
+ shell: pwsh
+ run: |
+ if ($env:RUNNER_OS -eq "Windows") {
+ Set-ExecutionPolicy RemoteSigned -Scope Process -Force
+ iwr -useb get.scoop.sh | iex
+ scoop install allure
+ $shimPath = "$env:USERPROFILE\scoop\shims"
+ echo "Adding Scoop shims to PATH: $shimPath"
+ echo "$shimPath" | Out-File -Append -Encoding utf8 $env:GITHUB_PATH
+ } elseif ($env:RUNNER_OS -eq "Linux") {
+ npm install -g allure-commandline --save-dev
+ } else {
+ Write-Host "Unsupported OS: $env:RUNNER_OS"
+ exit 1
+ }
- name: Check out code
uses: actions/checkout@v4
+
- name: Set workaround for libaio on Ubuntu 24.04 (see https://askubuntu.com/questions/1512196/libaio1-on-noble/1512197#1512197)
run: |
- sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
- if: ${{ matrix.os == 'ubuntu-24.04' }}
+ sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
+ if: ${{ matrix.os == 'ubuntu-latest' }}
+
- name: Set environment variable for Linux
run: echo "RunAzureTests=yes" >> $GITHUB_ENV
- if: ${{ matrix.os == 'ubuntu-24.04' }}
+ if: ${{ matrix.os == 'ubuntu-latest' }}
+
- name: Set environment variable for Windows
run: echo ("RunAzureTests=yes") >> $env:GITHUB_ENV
if: ${{ matrix.os == 'windows-latest' }}
+
- name: Setup .NET
uses: actions/setup-dotnet@v4
+
- name: Setup Node.js for Azurite
uses: actions/setup-node@v4
with:
node-version: '20'
+
- name: Install and Run Azurite
shell: bash
run: |
npm install -g azurite
azurite &
+
- name: Install dependencies
run: dotnet restore
- - name: Format
+
+ - name: Check style format
run: dotnet format --verify-no-changes --verbosity diagnostic
- - name: Build Tsavorite
+
+ - name: Build Tsavorite.test
+ if: ${{ matrix.test == 'Tsavorite.test' }}
run: dotnet build libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj --configuration ${{ matrix.configuration }}
- - name: Run Tsavorite tests
- run: dotnet test libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj -f ${{ matrix.framework }} --logger "console;verbosity=detailed" --logger trx --results-directory "TsavoriteTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}"
- timeout-minutes: 45
+
+ - name: Build Garnet
+ if: ${{ matrix.test != 'Tsavorite.test' }}
+ run: dotnet build --configuration ${{ matrix.configuration }}
+
+ - name: Run tests ${{ matrix.test }}
+ shell: pwsh
+ run: |
+ $resultsDir = "${{ matrix.test }}-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}"
+ if ("${{ matrix.test }}" -eq "Tsavorite.test") {
+ dotnet test "libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj" `
+ -f "${{ matrix.framework }}" `
+ --configuration "${{ matrix.configuration }}" `
+ --logger "console;verbosity=detailed" `
+ --logger "trx" `
+ --results-directory "$resultsDir"
+ } else {
+ dotnet test "test/${{ matrix.test }}" `
+ -f "${{ matrix.framework }}" `
+ --configuration "${{ matrix.configuration }}" `
+ --logger "console;verbosity=detailed" `
+ --logger "trx" `
+ --results-directory "$resultsDir"
+ }
+ timeout-minutes: 55
+
- name: Upload test results
uses: actions/upload-artifact@v4
with:
- name: dotnet-tsavorite-results-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}
- path: TsavoriteTestResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}
+ name: ${{ matrix.test }}-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}
+ path: ${{ matrix.test }}-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}
+ if: ${{ always() }}
+
+ - name: Stage allure-results into test/Allure/AllResults
+ shell: pwsh
+ run: |
+ $base = $env:GITHUB_WORKSPACE
+
+ if ("${{ matrix.test }}" -eq "Tsavorite.test") {
+ $source = Join-Path $base "libs/storage/Tsavorite/cs/test/bin/${{ matrix.configuration }}/${{ matrix.framework }}/allure-results"
+ } else {
+ $source = Join-Path $base "test/${{ matrix.test }}/bin/${{ matrix.configuration }}/${{ matrix.framework }}/allure-results"
+ }
+
+ $target = Join-Path $base "test/Allure/AllResults"
+ Write-Host "Staging allure-results from $source into $target"
+
+ New-Item -ItemType Directory -Path $target -Force | Out-Null
+
+ if (Test-Path $source) {
+ Get-ChildItem -Path $source -Recurse | Copy-Item -Destination $target -Force
+ Write-Host "Copied allure-results into $target"
+ } else {
+ Write-Host "Source path $source not found, skipping copy"
+ }
+ if: ${{ always() }}
+
+ # NOTE - need this to get the results names properly categorized in Allure report at Suite level - problem is that it can hit a max limit in the system if do a bug test matrix
+ - name: Upload Allure Results to artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: AllureResults-${{ matrix.os }}-${{ matrix.framework }}-${{ matrix.configuration }}-${{ matrix.test }}
+ path: test/Allure/AllResults
+ if: ${{ always() }}
+
+ - name: Clean up raw allure-results folders after copying to Allure staging area
+ shell: pwsh
+ run: |
+ $base = $env:GITHUB_WORKSPACE
+ $paths = @(
+ "libs/storage/Tsavorite/cs/test/bin/${{ matrix.configuration }}/${{ matrix.framework }}/allure-results",
+ "test/${{ matrix.test }}/bin/${{ matrix.configuration }}/${{ matrix.framework }}/allure-results"
+ )
+ foreach ($p in $paths) {
+ $full = Join-Path $base $p
+ if (Test-Path $full) {
+ Write-Host "Removing $full"
+ Remove-Item $full -Recurse -Force
+ }
+ }
if: ${{ always() }}
- pipeline-success:
- name: Garnet Nightly (Complete)
- runs-on: ubuntu-latest
- needs: [ build-test-garnet, build-test-tsavorite ]
+ generate-allure-report:
+ name: Generate Allure Report
+ runs-on: windows-latest # only used to generate report - makes it easy on how calls made so don't have to worry about windows and linux
+ needs: [ build-test-all ]
+ if: ${{ always() }}
steps:
- - run: echo Done!
- if: ${{ !(failure() || cancelled()) }}
-
+ # First checkout the main repo into the default workspace root
+ - name: Checkout main repository
+ uses: actions/checkout@v4
+
+ # Then checkout the allure_data_history branch into a subfolder
+ - name: Checkout allure_data_history branch
+ uses: actions/checkout@v4
+ with:
+ ref: allure_data_history
+ path: history-branch
+ persist-credentials: true
+
+ - name: Install Allure CLI
+ shell: pwsh
+ run: |
+ if ($env:RUNNER_OS -eq "Windows") {
+ Set-ExecutionPolicy RemoteSigned -Scope Process -Force
+ iwr -useb get.scoop.sh | iex
+ scoop install allure
+ $shimPath = "$env:USERPROFILE\scoop\shims"
+ echo "Adding Scoop shims to PATH: $shimPath"
+ echo "$shimPath" | Out-File -Append -Encoding utf8 $env:GITHUB_PATH
+ } elseif ($env:RUNNER_OS -eq "Linux") {
+ npm install -g allure-commandline --save-dev
+ } else {
+ Write-Host "Unsupported OS: $env:RUNNER_OS"
+ exit 1
+ }
+
+ - name: Download allure test results that were staged in artifacts and merge into one folder
+ uses: actions/download-artifact@v4
+ with:
+ path: test/Allure/AllResults
+ pattern: AllureResults-*
+
+ - name: Copy all results into one folder (CombinedResults)
+ shell: pwsh
+ run: |
+ $source = Join-Path $env:GITHUB_WORKSPACE "test/Allure/AllResults"
+ $target = Join-Path $env:GITHUB_WORKSPACE "test/Allure/CombinedResults"
+ New-Item -ItemType Directory -Path $target -Force
+ Get-ChildItem -Path $source -Recurse -File | ForEach-Object {
+ Copy-Item -Path $_.FullName -Destination $target -Force
+ }
+
+ - name: Final cleanup of stray allure-results folders
+ shell: pwsh
+ run: |
+ $base = $env:GITHUB_WORKSPACE
+ # Remove any allure-results directories anywhere under workspace
+ Get-ChildItem -Path $base -Recurse -Directory -Filter "allure-results" |
+ ForEach-Object {
+ Write-Host "Removing $($_.FullName)"
+ Remove-Item $_.FullName -Recurse -Force
+ }
+
+ # Remove the staging folder once CombinedResults is ready
+ $staging = Join-Path $base "test/Allure/AllResults"
+ if (Test-Path $staging) {
+ Write-Host "Removing staging folder $staging"
+ Remove-Item $staging -Recurse -Force
+ }
+
+ - name: Copy history from allure_data_history branch into CombinedResults
+ shell: pwsh
+ run: |
+ $source = "${{ github.workspace }}/history-branch/test/Allure/history"
+ $target = "${{ github.workspace }}/test/Allure/CombinedResults/history"
+ if (Test-Path $source) {
+ New-Item -ItemType Directory -Path $target -Force
+ Copy-Item -Path (Join-Path $source '*') -Destination $target -Recurse -Force
+ Write-Host "History copied from allure_data_history into CombinedResults"
+ } else {
+ Write-Host "No history found in allure_data_history, starting fresh"
+ }
+
+ - name: Run GenerateAllureReport.ps1
+ shell: pwsh
+ run: |
+ Set-Location "${{ github.workspace }}/test/Allure"
+ .\GenerateAllureReport.ps1
+
+ - name: Upload Allure history to artifacts so can use for debugging if needed
+ uses: actions/upload-artifact@v4
+ with:
+ name: allure-history
+ path: test/Allure/allure-report/history
+
+ - name: Commit updated history to allure_data_history
+ shell: pwsh
+ run: |
+ git config --global user.name "github-actions[bot]"
+ git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git fetch origin allure_data_history
+ git checkout allure_data_history
+ $source = "${{ github.workspace }}/test/Allure/allure-report/history"
+ $target = "${{ github.workspace }}/test/Allure/history"
+ Remove-Item -Recurse -Force $target -ErrorAction SilentlyContinue
+ Copy-Item -Path $source -Destination $target -Recurse -Force
+ git add test/Allure/history
+ git commit -m "Update Allure history [CI]"
+ git push origin allure_data_history
+
+ - name: Upload Allure HTML report
+ uses: actions/upload-artifact@v4
+ with:
+ name: allure-report
+ path: test/Allure/allure-report
+
+ - name: Publish Allure report to GH Web site
+ shell: pwsh
+ run: |
+ $source = Join-Path $env:GITHUB_WORKSPACE "test/Allure/allure-report"
+ $target = Join-Path $env:GITHUB_WORKSPACE "website/static/allure"
+ Write-Host "Copying Allure report from $source to $target"
+ New-Item -ItemType Directory -Path $target -Force | Out-Null
+ Copy-Item -Path (Join-Path $source '*') -Destination $target -Recurse -Force
+ Write-Host "Allure report staged in website/static/allure"
+
+ - name: Echo completion
+ run: echo Done!
diff --git a/Directory.Build.props b/Directory.Build.props
index 470cd3f5592..d224fde6a66 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -14,7 +14,7 @@
true
true
-
+
true
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 62f32c388c9..a33ea0a1fec 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,6 +4,8 @@
true
+
+
diff --git a/README.md b/README.md
index c89151e50a2..b2ccf432ec9 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@
[](https://www.nuget.org/packages/microsoft.garnet)
[](https://www.nuget.org/packages/garnet-server)
[](https://microsoft.github.io/garnet/charts/)
+[](https://microsoft.github.io/garnet/allure/)
[](https://aka.ms/garnet-discord)
Garnet is a new remote cache-store from Microsoft Research, that offers several unique benefits:
diff --git a/libs/storage/Tsavorite/cs/test/BasicLockTests.cs b/libs/storage/Tsavorite/cs/test/BasicLockTests.cs
index 6b8139aa528..8070a1cc627 100644
--- a/libs/storage/Tsavorite/cs/test/BasicLockTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BasicLockTests.cs
@@ -5,6 +5,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -29,8 +31,9 @@ namespace Tsavorite.test.LockTests
{
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class BasicLockTests
+ public class BasicLockTests : AllureTestBase
{
internal class Functions : SimpleSimpleFunctions
{
diff --git a/libs/storage/Tsavorite/cs/test/BasicStorageTests.cs b/libs/storage/Tsavorite/cs/test/BasicStorageTests.cs
index 7bf32845942..ecf52102756 100644
--- a/libs/storage/Tsavorite/cs/test/BasicStorageTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BasicStorageTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class BasicStorageTests
+ internal class BasicStorageTests : AllureTestBase
{
[Test]
[Category("TsavoriteKV")]
diff --git a/libs/storage/Tsavorite/cs/test/BasicTests.cs b/libs/storage/Tsavorite/cs/test/BasicTests.cs
index b66577486ad..c2f0802bbc3 100644
--- a/libs/storage/Tsavorite/cs/test/BasicTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BasicTests.cs
@@ -5,6 +5,8 @@
using System.Diagnostics;
using System.IO;
using System.Linq;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -21,8 +23,9 @@ namespace Tsavorite.test
//** NOTE - more detailed / in depth Read tests in ReadAddressTests.cs
//** These tests ensure the basics are fully covered
+ [AllureNUnit]
[TestFixture]
- internal class BasicTests
+ internal class BasicTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/BlittableIterationTests.cs b/libs/storage/Tsavorite/cs/test/BlittableIterationTests.cs
index d360d4c6bed..4ca6f0f9a39 100644
--- a/libs/storage/Tsavorite/cs/test/BlittableIterationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BlittableIterationTests.cs
@@ -5,6 +5,8 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -14,8 +16,9 @@ namespace Tsavorite.test
{
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class BlittableIterationTests
+ internal class BlittableIterationTests : AllureTestBase
{
private TsavoriteKV> store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/BlittableLogCompactionTests.cs b/libs/storage/Tsavorite/cs/test/BlittableLogCompactionTests.cs
index 4d1c2929ea6..05c7e82996f 100644
--- a/libs/storage/Tsavorite/cs/test/BlittableLogCompactionTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BlittableLogCompactionTests.cs
@@ -4,6 +4,8 @@
using System;
using System.Diagnostics;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -35,8 +37,9 @@ namespace Tsavorite.test
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class BlittableLogCompactionTests
+ public class BlittableLogCompactionTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/BlittableLogScanTests.cs b/libs/storage/Tsavorite/cs/test/BlittableLogScanTests.cs
index bb94d583eb5..52c42e0ffad 100644
--- a/libs/storage/Tsavorite/cs/test/BlittableLogScanTests.cs
+++ b/libs/storage/Tsavorite/cs/test/BlittableLogScanTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -33,8 +35,9 @@ namespace Tsavorite.test
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class BlittableLogScanTests
+ internal class BlittableLogScanTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/CancellationTests.cs b/libs/storage/Tsavorite/cs/test/CancellationTests.cs
index 9d85f899c93..f8416749319 100644
--- a/libs/storage/Tsavorite/cs/test/CancellationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/CancellationTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test.Cancellation
using IntAllocator = BlittableAllocator>>;
using IntStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- class CancellationTests
+ class CancellationTests : AllureTestBase
{
internal enum CancelLocation
{
diff --git a/libs/storage/Tsavorite/cs/test/CheckpointManagerTests.cs b/libs/storage/Tsavorite/cs/test/CheckpointManagerTests.cs
index 6c21404529e..d661183532e 100644
--- a/libs/storage/Tsavorite/cs/test/CheckpointManagerTests.cs
+++ b/libs/storage/Tsavorite/cs/test/CheckpointManagerTests.cs
@@ -6,6 +6,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -17,7 +19,9 @@ namespace Tsavorite.test
using LongAllocator = BlittableAllocator>>;
using LongStoreFunctions = StoreFunctions>;
- public class CheckpointManagerTests
+ [AllureNUnit]
+ [TestFixture]
+ public class CheckpointManagerTests : AllureTestBase
{
private readonly Random random = new(0);
diff --git a/libs/storage/Tsavorite/cs/test/CompletePendingTests.cs b/libs/storage/Tsavorite/cs/test/CompletePendingTests.cs
index 64c92320472..66534221fcb 100644
--- a/libs/storage/Tsavorite/cs/test/CompletePendingTests.cs
+++ b/libs/storage/Tsavorite/cs/test/CompletePendingTests.cs
@@ -4,6 +4,8 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -29,8 +31,9 @@ namespace Tsavorite.test
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- class CompletePendingTests
+ class CompletePendingTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/ComponentRecoveryTests.cs b/libs/storage/Tsavorite/cs/test/ComponentRecoveryTests.cs
index 9083c0feffc..a98227c54ec 100644
--- a/libs/storage/Tsavorite/cs/test/ComponentRecoveryTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ComponentRecoveryTests.cs
@@ -4,14 +4,17 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test.recovery
{
+ [AllureNUnit]
[TestFixture]
- public class ComponentRecoveryTests
+ public class ComponentRecoveryTests : AllureTestBase
{
private static unsafe void Setup_MallocFixedPageSizeRecoveryTest(out int seed, out IDevice device, out int numBucketsToAdd, out long[] logicalAddresses, out ulong numBytesWritten)
{
diff --git a/libs/storage/Tsavorite/cs/test/ConcurrentCounterTests.cs b/libs/storage/Tsavorite/cs/test/ConcurrentCounterTests.cs
index a3982f13607..92a15844619 100644
--- a/libs/storage/Tsavorite/cs/test/ConcurrentCounterTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ConcurrentCounterTests.cs
@@ -1,14 +1,17 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- public class ConcurrentCounterTests
+ public class ConcurrentCounterTests : AllureTestBase
{
[Test]
public void Increment_IncreasesCounterValue()
diff --git a/libs/storage/Tsavorite/cs/test/DeltaLogTests.cs b/libs/storage/Tsavorite/cs/test/DeltaLogTests.cs
index c58d5dc4016..e61ca4f39a1 100644
--- a/libs/storage/Tsavorite/cs/test/DeltaLogTests.cs
+++ b/libs/storage/Tsavorite/cs/test/DeltaLogTests.cs
@@ -3,14 +3,17 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class DeltaLogStandAloneTests
+ internal class DeltaLogStandAloneTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/DeviceLogTests.cs b/libs/storage/Tsavorite/cs/test/DeviceLogTests.cs
index 741e0aadd28..a4cf5b15e39 100644
--- a/libs/storage/Tsavorite/cs/test/DeviceLogTests.cs
+++ b/libs/storage/Tsavorite/cs/test/DeviceLogTests.cs
@@ -5,6 +5,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class DeviceLogTests
+ internal class DeviceLogTests : AllureTestBase
{
const int entryLength = 100;
const int numEntries = 1000;
diff --git a/libs/storage/Tsavorite/cs/test/DeviceTests.cs b/libs/storage/Tsavorite/cs/test/DeviceTests.cs
index 302fbd99a56..e40bca99108 100644
--- a/libs/storage/Tsavorite/cs/test/DeviceTests.cs
+++ b/libs/storage/Tsavorite/cs/test/DeviceTests.cs
@@ -6,14 +6,17 @@
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- public class DeviceTests
+ public class DeviceTests : AllureTestBase
{
const int entryLength = 1024;
SectorAlignedBufferPool bufferPool;
diff --git a/libs/storage/Tsavorite/cs/test/EnqueueAndWaitForCommit.cs b/libs/storage/Tsavorite/cs/test/EnqueueAndWaitForCommit.cs
index aa439126912..753b5c0ca4e 100644
--- a/libs/storage/Tsavorite/cs/test/EnqueueAndWaitForCommit.cs
+++ b/libs/storage/Tsavorite/cs/test/EnqueueAndWaitForCommit.cs
@@ -3,14 +3,17 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class EnqWaitCommitTest
+ internal class EnqWaitCommitTest : AllureTestBase
{
const int entryLength = 500;
const int numEntries = 100;
diff --git a/libs/storage/Tsavorite/cs/test/EnqueueTests.cs b/libs/storage/Tsavorite/cs/test/EnqueueTests.cs
index 7c845f5d55a..784226136cb 100644
--- a/libs/storage/Tsavorite/cs/test/EnqueueTests.cs
+++ b/libs/storage/Tsavorite/cs/test/EnqueueTests.cs
@@ -5,15 +5,17 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
-
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class EnqueueTests
+ internal class EnqueueTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/ExpirationTests.cs b/libs/storage/Tsavorite/cs/test/ExpirationTests.cs
index 8bfa751e9f0..0a63c6b0293 100644
--- a/libs/storage/Tsavorite/cs/test/ExpirationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ExpirationTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test.Expiration
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class ExpirationTests
+ internal class ExpirationTests : AllureTestBase
{
const int StackAllocMax = 12;
const int NumRecs = 5000;
diff --git a/libs/storage/Tsavorite/cs/test/FlakyDeviceTests.cs b/libs/storage/Tsavorite/cs/test/FlakyDeviceTests.cs
index 081c8fb34b5..9c7903692d8 100644
--- a/libs/storage/Tsavorite/cs/test/FlakyDeviceTests.cs
+++ b/libs/storage/Tsavorite/cs/test/FlakyDeviceTests.cs
@@ -8,12 +8,14 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
internal class FlakyDeviceTests : TsavoriteLogTestBase
{
diff --git a/libs/storage/Tsavorite/cs/test/FunctionPerSessionTests.cs b/libs/storage/Tsavorite/cs/test/FunctionPerSessionTests.cs
index 25e90c780c5..fc0f6074d1c 100644
--- a/libs/storage/Tsavorite/cs/test/FunctionPerSessionTests.cs
+++ b/libs/storage/Tsavorite/cs/test/FunctionPerSessionTests.cs
@@ -3,6 +3,8 @@
using System.IO;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -108,8 +110,9 @@ public override bool ConcurrentReader(ref int key, ref Empty input, ref RefCount
}
}
+ [AllureNUnit]
[TestFixture]
- public class FunctionPerSessionTests
+ public class FunctionPerSessionTests : AllureTestBase
{
private IDevice _log;
private TsavoriteKV store;
diff --git a/libs/storage/Tsavorite/cs/test/GenericByteArrayTests.cs b/libs/storage/Tsavorite/cs/test/GenericByteArrayTests.cs
index 14c9cfe9ce7..7e6c1bec06d 100644
--- a/libs/storage/Tsavorite/cs/test/GenericByteArrayTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericByteArrayTests.cs
@@ -4,6 +4,8 @@
using System;
using System.IO;
using System.Linq;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -13,8 +15,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericByteArrayTests
+ internal class GenericByteArrayTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/GenericDiskDeleteTests.cs b/libs/storage/Tsavorite/cs/test/GenericDiskDeleteTests.cs
index 54c995e78a5..af9517830c8 100644
--- a/libs/storage/Tsavorite/cs/test/GenericDiskDeleteTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericDiskDeleteTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericDiskDeleteTests
+ internal class GenericDiskDeleteTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/GenericIterationTests.cs b/libs/storage/Tsavorite/cs/test/GenericIterationTests.cs
index 7b3b5610074..0b9734943c5 100644
--- a/libs/storage/Tsavorite/cs/test/GenericIterationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericIterationTests.cs
@@ -5,6 +5,8 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -15,8 +17,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericIterationTests
+ internal class GenericIterationTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/GenericLogCompactionTests.cs b/libs/storage/Tsavorite/cs/test/GenericLogCompactionTests.cs
index f55234877d7..6ef5995d524 100644
--- a/libs/storage/Tsavorite/cs/test/GenericLogCompactionTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericLogCompactionTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericLogCompactionTests
+ internal class GenericLogCompactionTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/GenericLogScanTests.cs b/libs/storage/Tsavorite/cs/test/GenericLogScanTests.cs
index 1a3ad17750f..a96db7256a5 100644
--- a/libs/storage/Tsavorite/cs/test/GenericLogScanTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericLogScanTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -33,8 +35,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericLogScanTests
+ internal class GenericLogScanTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log, objlog;
diff --git a/libs/storage/Tsavorite/cs/test/GenericStringTests.cs b/libs/storage/Tsavorite/cs/test/GenericStringTests.cs
index b34faff3d69..34b0aa00c27 100644
--- a/libs/storage/Tsavorite/cs/test/GenericStringTests.cs
+++ b/libs/storage/Tsavorite/cs/test/GenericStringTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using StringAllocator = GenericAllocator>>;
using StringStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class GenericStringTests
+ internal class GenericStringTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession session;
diff --git a/libs/storage/Tsavorite/cs/test/InputOutputParameterTests.cs b/libs/storage/Tsavorite/cs/test/InputOutputParameterTests.cs
index a6282bd2a92..d31b208e263 100644
--- a/libs/storage/Tsavorite/cs/test/InputOutputParameterTests.cs
+++ b/libs/storage/Tsavorite/cs/test/InputOutputParameterTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -11,8 +13,9 @@ namespace Tsavorite.test.InputOutputParameterTests
using IntAllocator = BlittableAllocator>>;
using IntStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- class InputOutputParameterTests
+ class InputOutputParameterTests : AllureTestBase
{
const int AddValue = 10_000;
const int MultValue = 100;
diff --git a/libs/storage/Tsavorite/cs/test/InsertAtTailSpanByteStressTests.cs b/libs/storage/Tsavorite/cs/test/InsertAtTailSpanByteStressTests.cs
index 747b9a23532..8efb238bd5c 100644
--- a/libs/storage/Tsavorite/cs/test/InsertAtTailSpanByteStressTests.cs
+++ b/libs/storage/Tsavorite/cs/test/InsertAtTailSpanByteStressTests.cs
@@ -6,6 +6,8 @@
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -25,7 +27,9 @@ public enum MutablePages
Two
}
- class SpanByteInsertAtTailChainTests
+ [AllureNUnit]
+ [TestFixture]
+ class SpanByteInsertAtTailChainTests : AllureTestBase
{
private TsavoriteKV> store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/LargeObjectTests.cs b/libs/storage/Tsavorite/cs/test/LargeObjectTests.cs
index 952b5826410..bb32e8c2581 100644
--- a/libs/storage/Tsavorite/cs/test/LargeObjectTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LargeObjectTests.cs
@@ -4,6 +4,8 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -14,8 +16,9 @@ namespace Tsavorite.test.largeobjects
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class LargeObjectTests
+ internal class LargeObjectTests : AllureTestBase
{
[SetUp]
public void Setup() => RecreateDirectory(MethodTestDir);
diff --git a/libs/storage/Tsavorite/cs/test/LockableUnsafeContextTests.cs b/libs/storage/Tsavorite/cs/test/LockableUnsafeContextTests.cs
index bcb3c62e2ca..8b29cdc5104 100644
--- a/libs/storage/Tsavorite/cs/test/LockableUnsafeContextTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LockableUnsafeContextTests.cs
@@ -8,6 +8,8 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -140,8 +142,9 @@ internal readonly void AssertNoLocks()
}
}
+ [AllureNUnit]
[TestFixture]
- class LockableUnsafeContextTests
+ class LockableUnsafeContextTests : AllureTestBase
{
const int NumRecords = 1000;
const int UseNewKey = 1010;
diff --git a/libs/storage/Tsavorite/cs/test/LogAndDeviceConfigTests.cs b/libs/storage/Tsavorite/cs/test/LogAndDeviceConfigTests.cs
index efff7b55fba..7e5257cca1e 100644
--- a/libs/storage/Tsavorite/cs/test/LogAndDeviceConfigTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogAndDeviceConfigTests.cs
@@ -1,6 +1,8 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -13,8 +15,9 @@ namespace Tsavorite.test
//* For completeness, setting other parameters too where possible
//* However, the verification is pretty light. Just makes sure log file created and things be added and read from it
+ [AllureNUnit]
[TestFixture]
- internal class LogAndDeviceConfigTests
+ internal class LogAndDeviceConfigTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/LogFastCommitTests.cs b/libs/storage/Tsavorite/cs/test/LogFastCommitTests.cs
index bcbea902b1d..ddf79a1d5b8 100644
--- a/libs/storage/Tsavorite/cs/test/LogFastCommitTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogFastCommitTests.cs
@@ -5,12 +5,14 @@
using System.Collections.Generic;
using System.IO;
using System.Threading;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
internal class LogFastCommitTests : TsavoriteLogTestBase
{
diff --git a/libs/storage/Tsavorite/cs/test/LogReadAsyncTests.cs b/libs/storage/Tsavorite/cs/test/LogReadAsyncTests.cs
index 4642657a4c8..cd2d5967a3d 100644
--- a/libs/storage/Tsavorite/cs/test/LogReadAsyncTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogReadAsyncTests.cs
@@ -4,14 +4,17 @@
using System.Buffers;
using System.IO;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class LogReadAsyncTests
+ internal class LogReadAsyncTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/LogRecoverReadOnlyTests.cs b/libs/storage/Tsavorite/cs/test/LogRecoverReadOnlyTests.cs
index a1bac44a483..797bae0a201 100644
--- a/libs/storage/Tsavorite/cs/test/LogRecoverReadOnlyTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogRecoverReadOnlyTests.cs
@@ -6,14 +6,18 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
+
namespace Tsavorite.test.recovery
{
+ [AllureNUnit]
[TestFixture]
- public class LogRecoverReadOnlyTests
+ public class LogRecoverReadOnlyTests : AllureTestBase
{
const int ProducerPauseMs = 1;
const int CommitPeriodMs = 20;
diff --git a/libs/storage/Tsavorite/cs/test/LogResumeTests.cs b/libs/storage/Tsavorite/cs/test/LogResumeTests.cs
index 5abbae37427..32dfa24fe0a 100644
--- a/libs/storage/Tsavorite/cs/test/LogResumeTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogResumeTests.cs
@@ -6,14 +6,17 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class LogResumeTests
+ internal class LogResumeTests : AllureTestBase
{
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/LogScanTests.cs b/libs/storage/Tsavorite/cs/test/LogScanTests.cs
index d0c9beefb00..2a822e7019a 100644
--- a/libs/storage/Tsavorite/cs/test/LogScanTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogScanTests.cs
@@ -3,14 +3,17 @@
using System.IO;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class LogScanTests
+ internal class LogScanTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/LogShiftTailStressTest.cs b/libs/storage/Tsavorite/cs/test/LogShiftTailStressTest.cs
index b30f7501946..7947051cb8e 100644
--- a/libs/storage/Tsavorite/cs/test/LogShiftTailStressTest.cs
+++ b/libs/storage/Tsavorite/cs/test/LogShiftTailStressTest.cs
@@ -4,11 +4,13 @@
using System;
using System.Collections.Generic;
using System.Threading;
+using Allure.NUnit;
using NUnit.Framework;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
internal class LogShiftTailStressTest : TsavoriteLogTestBase
{
diff --git a/libs/storage/Tsavorite/cs/test/LogTests.cs b/libs/storage/Tsavorite/cs/test/LogTests.cs
index 3828e6ba06f..82bdfa25627 100644
--- a/libs/storage/Tsavorite/cs/test/LogTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LogTests.cs
@@ -8,14 +8,17 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class TsavoriteLogStandAloneTests
+ internal class TsavoriteLogStandAloneTests : AllureTestBase
{
[Test]
[Category("TsavoriteLog")]
@@ -54,7 +57,7 @@ public void TestDisposeReleasesFileLocksWithCompletedCommit([Values] TestUtils.T
}
// This test base class allows splitting up the tests into separate fixtures that can be run in parallel
- internal class TsavoriteLogTestBase
+ internal class TsavoriteLogTestBase : AllureTestBase
{
protected const int entryLength = 100;
protected const int numEntries = 10000; //1000000;
@@ -186,6 +189,7 @@ protected static async Task LogWriterAsync(TsavoriteLog log, byte[] entry)
}
}
+ [AllureNUnit]
[TestFixture]
internal class TsavoriteLogGeneralTests : TsavoriteLogTestBase
{
@@ -400,6 +404,7 @@ public async ValueTask TsavoriteLogAsyncConsumerTest([Values] LogChecksumType lo
}
+ [AllureNUnit]
[TestFixture]
internal class TsavoriteLogEnqueueTests : TsavoriteLogTestBase
{
@@ -537,6 +542,7 @@ public async ValueTask TryEnqueue2([Values] LogChecksumType logChecksum, [Values
}
}
+ [AllureNUnit]
[TestFixture]
internal class TsavoriteLogTruncateTests : TsavoriteLogTestBase
{
@@ -1040,6 +1046,7 @@ public async ValueTask RefreshUncommittedAsyncTest([Values] IteratorType iterato
}
}
+ [AllureNUnit]
[TestFixture]
internal class TsavoriteLogCustomCommitTests : TsavoriteLogTestBase
{
diff --git a/libs/storage/Tsavorite/cs/test/LowMemoryTests.cs b/libs/storage/Tsavorite/cs/test/LowMemoryTests.cs
index 3c553f3ebff..0044fc2fd8c 100644
--- a/libs/storage/Tsavorite/cs/test/LowMemoryTests.cs
+++ b/libs/storage/Tsavorite/cs/test/LowMemoryTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -11,8 +13,9 @@ namespace Tsavorite.test.LowMemory
using LongAllocator = BlittableAllocator>>;
using LongStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class LowMemoryTests
+ public class LowMemoryTests : AllureTestBase
{
IDevice log;
TsavoriteKV store1;
diff --git a/libs/storage/Tsavorite/cs/test/MallocFixedPageSizeTests.cs b/libs/storage/Tsavorite/cs/test/MallocFixedPageSizeTests.cs
index f8a8729b535..90b5aae4e74 100644
--- a/libs/storage/Tsavorite/cs/test/MallocFixedPageSizeTests.cs
+++ b/libs/storage/Tsavorite/cs/test/MallocFixedPageSizeTests.cs
@@ -1,6 +1,8 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -8,8 +10,9 @@
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class MallocFixedPageSizeTests
+ internal class MallocFixedPageSizeTests : AllureTestBase
{
public enum AllocMode { Single, Bulk };
diff --git a/libs/storage/Tsavorite/cs/test/ManagedLocalStorageTests.cs b/libs/storage/Tsavorite/cs/test/ManagedLocalStorageTests.cs
index 97edf7d3873..b313233325e 100644
--- a/libs/storage/Tsavorite/cs/test/ManagedLocalStorageTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ManagedLocalStorageTests.cs
@@ -3,14 +3,17 @@
using System.IO;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class ManageLocalStorageTests
+ internal class ManageLocalStorageTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/MiscTests.cs b/libs/storage/Tsavorite/cs/test/MiscTests.cs
index e7db813fbeb..2b167ced27d 100644
--- a/libs/storage/Tsavorite/cs/test/MiscTests.cs
+++ b/libs/storage/Tsavorite/cs/test/MiscTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -15,8 +17,9 @@ namespace Tsavorite.test
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class MiscTests
+ internal class MiscTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log, objlog;
diff --git a/libs/storage/Tsavorite/cs/test/ModifiedBitTests.cs b/libs/storage/Tsavorite/cs/test/ModifiedBitTests.cs
index fec3a6e196c..e003b6d3d81 100644
--- a/libs/storage/Tsavorite/cs/test/ModifiedBitTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ModifiedBitTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -25,8 +27,9 @@ namespace Tsavorite.test.ModifiedBit
using IntAllocator = BlittableAllocator>>;
using IntStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- class ModifiedBitTests
+ class ModifiedBitTests : AllureTestBase
{
const int NumRecords = 1000;
const int ValueMult = 1_000_000;
diff --git a/libs/storage/Tsavorite/cs/test/MoreLogCompactionTests.cs b/libs/storage/Tsavorite/cs/test/MoreLogCompactionTests.cs
index f9c97fdbccf..62dfb2cea26 100644
--- a/libs/storage/Tsavorite/cs/test/MoreLogCompactionTests.cs
+++ b/libs/storage/Tsavorite/cs/test/MoreLogCompactionTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -11,8 +13,9 @@ namespace Tsavorite.test
using LongAllocator = BlittableAllocator>>;
using LongStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class MoreLogCompactionTests
+ internal class MoreLogCompactionTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/NativeReadCacheTests.cs b/libs/storage/Tsavorite/cs/test/NativeReadCacheTests.cs
index 0926c50163f..9b22d960ab9 100644
--- a/libs/storage/Tsavorite/cs/test/NativeReadCacheTests.cs
+++ b/libs/storage/Tsavorite/cs/test/NativeReadCacheTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -11,8 +13,9 @@ namespace Tsavorite.test.ReadCacheTests
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class NativeReadCacheTests
+ public class NativeReadCacheTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/NeedCopyUpdateTests.cs b/libs/storage/Tsavorite/cs/test/NeedCopyUpdateTests.cs
index 2eeab310e66..7f10f83830c 100644
--- a/libs/storage/Tsavorite/cs/test/NeedCopyUpdateTests.cs
+++ b/libs/storage/Tsavorite/cs/test/NeedCopyUpdateTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -16,8 +18,9 @@ namespace Tsavorite.test
using RMWValueAllocator = GenericAllocator>>;
using RMWValueStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class NeedCopyUpdateTests
+ internal class NeedCopyUpdateTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log, objlog;
@@ -167,8 +170,9 @@ public override void ReadCompletionCallback(ref int key, ref RMWValueObj input,
}
}
+ [AllureNUnit]
[TestFixture]
- internal class NeedCopyUpdateTestsSinglePage
+ internal class NeedCopyUpdateTestsSinglePage : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/ObjectReadCacheTests.cs b/libs/storage/Tsavorite/cs/test/ObjectReadCacheTests.cs
index 6b7ef35822a..e0d536bcc6f 100644
--- a/libs/storage/Tsavorite/cs/test/ObjectReadCacheTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ObjectReadCacheTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -11,8 +13,9 @@ namespace Tsavorite.test.ReadCacheTests
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class ObjectReadCacheTests
+ internal class ObjectReadCacheTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log, objlog;
diff --git a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest.cs b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest.cs
index 32981221d97..99e0519a2ae 100644
--- a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest.cs
+++ b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest.cs
@@ -4,6 +4,8 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using Tsavorite.core;
@@ -18,8 +20,9 @@ internal struct StructTuple
public T2 Item2;
}
+ [AllureNUnit]
[TestFixture]
- internal class ObjectRecoveryTests
+ internal class ObjectRecoveryTests : AllureTestBase
{
const long NumUniqueKeys = 1L << 14;
const long KeySpace = 1L << 14;
diff --git a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest2.cs b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest2.cs
index 2a528c61293..1e7ec0db5eb 100644
--- a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest2.cs
+++ b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest2.cs
@@ -3,6 +3,8 @@
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test.recovery.objects
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class ObjectRecoveryTests2
+ public class ObjectRecoveryTests2 : AllureTestBase
{
int iterations;
diff --git a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest3.cs b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest3.cs
index ef716e59722..9ae2617a43e 100644
--- a/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest3.cs
+++ b/libs/storage/Tsavorite/cs/test/ObjectRecoveryTest3.cs
@@ -6,6 +6,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -15,8 +17,9 @@ namespace Tsavorite.test.recovery.objects
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class ObjectRecoveryTests3
+ public class ObjectRecoveryTests3 : AllureTestBase
{
int iterations;
diff --git a/libs/storage/Tsavorite/cs/test/ObjectTests.cs b/libs/storage/Tsavorite/cs/test/ObjectTests.cs
index b0bba31558e..b1a36ad7b0b 100644
--- a/libs/storage/Tsavorite/cs/test/ObjectTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ObjectTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class ObjectTests
+ internal class ObjectTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log, objlog;
diff --git a/libs/storage/Tsavorite/cs/test/OverflowBucketLockTableTests.cs b/libs/storage/Tsavorite/cs/test/OverflowBucketLockTableTests.cs
index 4af0ca70983..9e473f75a42 100644
--- a/libs/storage/Tsavorite/cs/test/OverflowBucketLockTableTests.cs
+++ b/libs/storage/Tsavorite/cs/test/OverflowBucketLockTableTests.cs
@@ -6,6 +6,8 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -25,8 +27,9 @@ internal class SingleBucketComparer : IKeyComparer
// Used to signal Setup to use the SingleBucketComparer
public enum UseSingleBucketComparer { UseSingleBucket }
+ [AllureNUnit]
[TestFixture]
- internal class OverflowBucketLockTableTests
+ internal class OverflowBucketLockTableTests : AllureTestBase
{
IKeyComparer comparer = new LongKeyComparer();
long SingleBucketKey = 1; // We use a single bucket here for most tests so this lets us use 'ref' easily
diff --git a/libs/storage/Tsavorite/cs/test/PostOperationsTests.cs b/libs/storage/Tsavorite/cs/test/PostOperationsTests.cs
index c6d8a7982ed..23de2daf91f 100644
--- a/libs/storage/Tsavorite/cs/test/PostOperationsTests.cs
+++ b/libs/storage/Tsavorite/cs/test/PostOperationsTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
using IntAllocator = BlittableAllocator>>;
using IntStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class PostOperationsTests
+ internal class PostOperationsTests : AllureTestBase
{
class PostFunctions : SimpleSimpleFunctions
{
diff --git a/libs/storage/Tsavorite/cs/test/ReadAddressTests.cs b/libs/storage/Tsavorite/cs/test/ReadAddressTests.cs
index 09041311a8e..4db39d50c41 100644
--- a/libs/storage/Tsavorite/cs/test/ReadAddressTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ReadAddressTests.cs
@@ -4,6 +4,8 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -39,8 +41,9 @@ namespace Tsavorite.test.readaddress
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class ReadAddressTests
+ internal class ReadAddressTests : AllureTestBase
{
const int NumKeys = 1000;
const int KeyMod = 100;
diff --git a/libs/storage/Tsavorite/cs/test/ReadCacheChainTests.cs b/libs/storage/Tsavorite/cs/test/ReadCacheChainTests.cs
index 529e1c54433..f0b305068cb 100644
--- a/libs/storage/Tsavorite/cs/test/ReadCacheChainTests.cs
+++ b/libs/storage/Tsavorite/cs/test/ReadCacheChainTests.cs
@@ -7,6 +7,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -27,7 +29,9 @@ internal static class RcTestGlobals
internal const int PendingMod = 16;
}
- class ChainTests
+ [AllureNUnit]
+ [TestFixture]
+ class ChainTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
@@ -640,7 +644,9 @@ public void VerifyLockCountsAfterReadCacheEvict()
}
}
- class LongStressChainTests
+ [AllureNUnit]
+ [TestFixture]
+ class LongStressChainTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
@@ -884,7 +890,9 @@ unsafe void runUpdateThread(int tid)
}
}
- class SpanByteStressChainTests
+ [AllureNUnit]
+ [TestFixture]
+ class SpanByteStressChainTests : AllureTestBase
{
private TsavoriteKV> store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/RecoverReadOnlyTest.cs b/libs/storage/Tsavorite/cs/test/RecoverReadOnlyTest.cs
index 7c38c13cc6c..1f88366e318 100644
--- a/libs/storage/Tsavorite/cs/test/RecoverReadOnlyTest.cs
+++ b/libs/storage/Tsavorite/cs/test/RecoverReadOnlyTest.cs
@@ -6,6 +6,8 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using Tsavorite.core;
@@ -13,8 +15,9 @@
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class BasicRecoverReadOnly
+ internal class BasicRecoverReadOnly : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/RecoveryChecks.cs b/libs/storage/Tsavorite/cs/test/RecoveryChecks.cs
index a13d60f9d95..c894450fe2c 100644
--- a/libs/storage/Tsavorite/cs/test/RecoveryChecks.cs
+++ b/libs/storage/Tsavorite/cs/test/RecoveryChecks.cs
@@ -4,6 +4,8 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -21,7 +23,7 @@ public enum DeviceMode
Cloud
}
- public class RecoveryCheckBase
+ public class RecoveryCheckBase : AllureTestBase
{
protected IDevice log;
protected const int NumOps = 5000;
@@ -73,6 +75,7 @@ internal static void Verify(Status status, long key, long output)
}
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheck1Tests : RecoveryCheckBase
{
@@ -175,6 +178,7 @@ public async ValueTask RecoveryCheck1(
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheck2Tests : RecoveryCheckBase
{
@@ -475,6 +479,7 @@ public void RecoveryRollback(
}
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheck3Tests : RecoveryCheckBase
{
@@ -577,6 +582,7 @@ public async ValueTask RecoveryCheck3(
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheck4Tests : RecoveryCheckBase
{
@@ -682,6 +688,7 @@ public async ValueTask RecoveryCheck4(
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheck5Tests : RecoveryCheckBase
{
@@ -796,6 +803,7 @@ public async ValueTask RecoveryCheck5(
}
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheckSnapshotTests : RecoveryCheckBase
{
@@ -935,6 +943,7 @@ private async ValueTask IncrSnapshotRecoveryCheck(ICheckpointManager checkpointM
}
}
+ [AllureNUnit]
[TestFixture]
public class RecoveryCheckStreamingSnapshotTests : RecoveryCheckBase
{
diff --git a/libs/storage/Tsavorite/cs/test/RecoveryTests.cs b/libs/storage/Tsavorite/cs/test/RecoveryTests.cs
index e85c8d10a8a..9c7d2c85350 100644
--- a/libs/storage/Tsavorite/cs/test/RecoveryTests.cs
+++ b/libs/storage/Tsavorite/cs/test/RecoveryTests.cs
@@ -5,6 +5,8 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -22,8 +24,9 @@ namespace Tsavorite.test.recovery.sumstore
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class DeviceTypeRecoveryTests
+ internal class DeviceTypeRecoveryTests : AllureTestBase
{
internal const long NumUniqueKeys = 1L << 12;
internal const long KeySpace = 1L << 20;
@@ -212,8 +215,9 @@ private async ValueTask RecoverAndTestAsync(int tokenIndex, bool isAsync)
}
}
+ [AllureNUnit]
[TestFixture]
- public class AllocatorTypeRecoveryTests
+ public class AllocatorTypeRecoveryTests : AllureTestBase
{
const int StackAllocMax = 12;
const int RandSeed = 101;
diff --git a/libs/storage/Tsavorite/cs/test/ReproReadCacheTest.cs b/libs/storage/Tsavorite/cs/test/ReproReadCacheTest.cs
index 99964dd174f..73f6ef16d30 100644
--- a/libs/storage/Tsavorite/cs/test/ReproReadCacheTest.cs
+++ b/libs/storage/Tsavorite/cs/test/ReproReadCacheTest.cs
@@ -8,6 +8,8 @@
using System.IO;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -17,8 +19,9 @@ namespace Tsavorite.test.ReadCacheTests
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class RandomReadCacheTests
+ internal class RandomReadCacheTests : AllureTestBase
{
class Functions : SpanByteFunctions
{
diff --git a/libs/storage/Tsavorite/cs/test/RevivificationTests.cs b/libs/storage/Tsavorite/cs/test/RevivificationTests.cs
index ac965b26ca1..5ec99919ced 100644
--- a/libs/storage/Tsavorite/cs/test/RevivificationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/RevivificationTests.cs
@@ -8,6 +8,8 @@
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -230,8 +232,9 @@ internal static int GetMinRevivifiableKey numRecords - GetRevivifiableRecordCount(store, numRecords);
}
+ [AllureNUnit]
[TestFixture]
- class RevivificationFixedLenTests
+ class RevivificationFixedLenTests : AllureTestBase
{
internal class RevivificationFixedLenFunctions : SimpleSimpleFunctions
{
@@ -437,8 +440,9 @@ public void SimpleMinAddressTakeTest([Values] RevivifiableFraction revivifiableF
}
}
+ [AllureNUnit]
[TestFixture]
- class RevivificationSpanByteTests
+ class RevivificationSpanByteTests : AllureTestBase
{
const int KeyLength = 10;
const int InitialLength = 50;
@@ -1773,8 +1777,9 @@ public void SimplePendingOpsRevivifyTest([Values(CollisionRange.None)] Collision
}
}
+ [AllureNUnit]
[TestFixture]
- class RevivificationObjectTests
+ class RevivificationObjectTests : AllureTestBase
{
const int NumRecords = 1000;
internal const int ValueMult = 1_000_000;
@@ -1865,8 +1870,9 @@ public void SimpleObjectTest([Values] DeleteDest deleteDest, [Values(UpdateOp.Up
}
}
+ [AllureNUnit]
[TestFixture]
- class RevivificationSpanByteStressTests
+ class RevivificationSpanByteStressTests : AllureTestBase
{
const int KeyLength = 10;
const int InitialLength = 50;
diff --git a/libs/storage/Tsavorite/cs/test/SessionTests.cs b/libs/storage/Tsavorite/cs/test/SessionTests.cs
index 7cdbbf88d7c..d5ea541b156 100644
--- a/libs/storage/Tsavorite/cs/test/SessionTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SessionTests.cs
@@ -3,6 +3,8 @@
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -13,8 +15,9 @@ namespace Tsavorite.test.Session
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class SessionTests
+ internal class SessionTests : AllureTestBase
{
private TsavoriteKV store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/SharedDirectoryTests.cs b/libs/storage/Tsavorite/cs/test/SharedDirectoryTests.cs
index 8c42910efbf..5758c6b6822 100644
--- a/libs/storage/Tsavorite/cs/test/SharedDirectoryTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SharedDirectoryTests.cs
@@ -7,6 +7,8 @@
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using Microsoft.Win32.SafeHandles;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -17,8 +19,9 @@ namespace Tsavorite.test.recovery.sumstore
using StructAllocator = BlittableAllocator>>;
using StructStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- internal class SharedDirectoryTests
+ internal class SharedDirectoryTests : AllureTestBase
{
const long NumUniqueKeys = 1L << 5;
const long KeySpace = 1L << 11;
diff --git a/libs/storage/Tsavorite/cs/test/SimpleRecoveryTest.cs b/libs/storage/Tsavorite/cs/test/SimpleRecoveryTest.cs
index dfb08cbdb95..b23182fd218 100644
--- a/libs/storage/Tsavorite/cs/test/SimpleRecoveryTest.cs
+++ b/libs/storage/Tsavorite/cs/test/SimpleRecoveryTest.cs
@@ -6,6 +6,8 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -38,8 +40,9 @@ public CheckpointManagerWithCookie(bool testCommitCookie, INamedDeviceFactoryCre
public override byte[] GetCookie() => Cookie;
}
+ [AllureNUnit]
[TestFixture]
- class RecoveryTests
+ class RecoveryTests : AllureTestBase
{
const int NumOps = 5000;
AdId[] inputArray;
diff --git a/libs/storage/Tsavorite/cs/test/SimpleTests.cs b/libs/storage/Tsavorite/cs/test/SimpleTests.cs
index 4b92f87bdde..b448aee658f 100644
--- a/libs/storage/Tsavorite/cs/test/SimpleTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SimpleTests.cs
@@ -2,14 +2,17 @@
// Licensed under the MIT license.
using System;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class SimpleTests
+ internal class SimpleTests : AllureTestBase
{
[Test]
[Category("TsavoriteKV")]
diff --git a/libs/storage/Tsavorite/cs/test/SimpleVersionSchemeTest.cs b/libs/storage/Tsavorite/cs/test/SimpleVersionSchemeTest.cs
index c979b1cdbc5..7d67c9b0d4d 100644
--- a/libs/storage/Tsavorite/cs/test/SimpleVersionSchemeTest.cs
+++ b/libs/storage/Tsavorite/cs/test/SimpleVersionSchemeTest.cs
@@ -4,14 +4,17 @@
using System;
using System.Collections.Generic;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class SimpleVersionSchemeTest
+ internal class SimpleVersionSchemeTest : AllureTestBase
{
[Test]
[Category("TsavoriteLog")]
diff --git a/libs/storage/Tsavorite/cs/test/SingleWriterTests.cs b/libs/storage/Tsavorite/cs/test/SingleWriterTests.cs
index da42b4a8dc3..3db95e0ad8d 100644
--- a/libs/storage/Tsavorite/cs/test/SingleWriterTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SingleWriterTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -30,7 +32,9 @@ public override void PostSingleWriter(ref int key, ref int input, ref int src, r
}
}
- class SingleWriterTests
+ [AllureNUnit]
+ [TestFixture]
+ class SingleWriterTests : AllureTestBase
{
const int NumRecords = 1000;
const int ValueMult = 1_000_000;
diff --git a/libs/storage/Tsavorite/cs/test/SpanByteIterationTests.cs b/libs/storage/Tsavorite/cs/test/SpanByteIterationTests.cs
index ac0b0ff444f..c30e759f035 100644
--- a/libs/storage/Tsavorite/cs/test/SpanByteIterationTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SpanByteIterationTests.cs
@@ -5,6 +5,8 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -14,8 +16,9 @@ namespace Tsavorite.test
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class SpanByteIterationTests
+ internal class SpanByteIterationTests : AllureTestBase
{
private TsavoriteKV> store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/SpanByteLogScanTests.cs b/libs/storage/Tsavorite/cs/test/SpanByteLogScanTests.cs
index 788523d7953..935d94b67b1 100644
--- a/libs/storage/Tsavorite/cs/test/SpanByteLogScanTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SpanByteLogScanTests.cs
@@ -5,6 +5,8 @@
using System.IO;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -36,8 +38,9 @@ namespace Tsavorite.test.spanbyte
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class SpanByteLogScanTests
+ internal class SpanByteLogScanTests : AllureTestBase
{
private TsavoriteKV> store;
private IDevice log;
diff --git a/libs/storage/Tsavorite/cs/test/SpanByteTests.cs b/libs/storage/Tsavorite/cs/test/SpanByteTests.cs
index 2d5ed4fab7d..7fc33216f76 100644
--- a/libs/storage/Tsavorite/cs/test/SpanByteTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SpanByteTests.cs
@@ -5,6 +5,8 @@
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -14,8 +16,9 @@ namespace Tsavorite.test.spanbyte
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class SpanByteTests
+ internal class SpanByteTests : AllureTestBase
{
[Test]
[Category("TsavoriteKV")]
diff --git a/libs/storage/Tsavorite/cs/test/SpanByteVLVectorTests.cs b/libs/storage/Tsavorite/cs/test/SpanByteVLVectorTests.cs
index 49b5783548e..9721347477b 100644
--- a/libs/storage/Tsavorite/cs/test/SpanByteVLVectorTests.cs
+++ b/libs/storage/Tsavorite/cs/test/SpanByteVLVectorTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test.spanbyte
{
using SpanByteStoreFunctions = StoreFunctions;
+ [AllureNUnit]
[TestFixture]
- internal class SpanByteVLVectorTests
+ internal class SpanByteVLVectorTests : AllureTestBase
{
const int StackAllocMax = 12;
diff --git a/libs/storage/Tsavorite/cs/test/StateMachineDriverTests.cs b/libs/storage/Tsavorite/cs/test/StateMachineDriverTests.cs
index 6e8ed5addce..b457979be7d 100644
--- a/libs/storage/Tsavorite/cs/test/StateMachineDriverTests.cs
+++ b/libs/storage/Tsavorite/cs/test/StateMachineDriverTests.cs
@@ -5,6 +5,8 @@
using System.IO;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -15,7 +17,7 @@ namespace Tsavorite.test.recovery
using LongAllocator = BlittableAllocator>>;
using LongStoreFunctions = StoreFunctions>;
- public abstract class StateMachineDriverTestsBase
+ public abstract class StateMachineDriverTestsBase : AllureTestBase
{
readonly int numOpThreads = 2;
protected readonly int numKeys = 4;
@@ -254,6 +256,7 @@ void Fuzz()
}
}
+ [AllureNUnit]
[TestFixture]
public class CheckpointVersionSwitchRmw : StateMachineDriverTestsBase
{
@@ -309,6 +312,7 @@ public async ValueTask GrowIndexVersionSwitchRmwTest(
=> await DoGrowIndexVersionSwitchEquivalenceCheck(indexSize, useTimingFuzzing);
}
+ [AllureNUnit]
[TestFixture]
public class CheckpointVersionSwitchTxn : StateMachineDriverTestsBase
{
diff --git a/libs/storage/Tsavorite/cs/test/StructWithStringTests.cs b/libs/storage/Tsavorite/cs/test/StructWithStringTests.cs
index 13cbde8f92c..d79f769adbe 100644
--- a/libs/storage/Tsavorite/cs/test/StructWithStringTests.cs
+++ b/libs/storage/Tsavorite/cs/test/StructWithStringTests.cs
@@ -2,6 +2,8 @@
// Licensed under the MIT license.
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -47,8 +49,9 @@ namespace Tsavorite.test.StructWithString
using ClassAllocator = GenericAllocator>>;
using ClassStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class StructWithStringTests
+ public class StructWithStringTests : AllureTestBase
{
internal class StructWithStringTestFunctions : SimpleSimpleFunctions
{
diff --git a/libs/storage/Tsavorite/cs/test/TryEnqueueBasicTests.cs b/libs/storage/Tsavorite/cs/test/TryEnqueueBasicTests.cs
index 1b99f8efa24..1eda8bf112f 100644
--- a/libs/storage/Tsavorite/cs/test/TryEnqueueBasicTests.cs
+++ b/libs/storage/Tsavorite/cs/test/TryEnqueueBasicTests.cs
@@ -3,6 +3,8 @@
using System;
using System.IO;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -12,8 +14,9 @@ namespace Tsavorite.test
//** Fundamental basic test for TryEnqueue that covers all the parameters in TryEnqueue
//** Other tests in TsavoriteLog.cs provide more coverage for TryEnqueue
+ [AllureNUnit]
[TestFixture]
- internal class TryEnqueueTests
+ internal class TryEnqueueTests : AllureTestBase
{
private TsavoriteLog log;
private IDevice device;
diff --git a/libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj b/libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj
index 0c61c95648d..0e3acfff316 100644
--- a/libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj
+++ b/libs/storage/Tsavorite/cs/test/Tsavorite.test.csproj
@@ -11,6 +11,12 @@
+
+
+
+
+
+
@@ -23,4 +29,10 @@
+
+
+
+ false
+
+
diff --git a/libs/storage/Tsavorite/cs/test/UnsafeContextTests.cs b/libs/storage/Tsavorite/cs/test/UnsafeContextTests.cs
index f6d72d0f56a..86ef0ccd6fe 100644
--- a/libs/storage/Tsavorite/cs/test/UnsafeContextTests.cs
+++ b/libs/storage/Tsavorite/cs/test/UnsafeContextTests.cs
@@ -6,6 +6,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
@@ -18,8 +20,9 @@ namespace Tsavorite.test.UnsafeContext
//** These tests ensure the basics are fully covered - taken from BasicTests
+ [AllureNUnit]
[TestFixture]
- internal class BasicUnsafeContextTests
+ internal class BasicUnsafeContextTests : AllureTestBase
{
private TsavoriteKV store;
private ClientSession fullSession;
diff --git a/libs/storage/Tsavorite/cs/test/WaitForCommit.cs b/libs/storage/Tsavorite/cs/test/WaitForCommit.cs
index bbf88e2c47a..965da2c2132 100644
--- a/libs/storage/Tsavorite/cs/test/WaitForCommit.cs
+++ b/libs/storage/Tsavorite/cs/test/WaitForCommit.cs
@@ -3,14 +3,17 @@
using System.IO;
using System.Threading;
+using Allure.NUnit;
+using Garnet.test;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using Tsavorite.core;
namespace Tsavorite.test
{
+ [AllureNUnit]
[TestFixture]
- internal class WaitForCommitTests
+ internal class WaitForCommitTests : AllureTestBase
{
static TsavoriteLog log;
public IDevice device;
diff --git a/playground/TstRunner/TstRunner.csproj b/playground/TstRunner/TstRunner.csproj
index c74574f8e31..758be9e7dea 100644
--- a/playground/TstRunner/TstRunner.csproj
+++ b/playground/TstRunner/TstRunner.csproj
@@ -8,6 +8,11 @@
+
+
+
+
+
PreserveNewest
diff --git a/test/Allure/GenerateAllureReport.ps1 b/test/Allure/GenerateAllureReport.ps1
new file mode 100644
index 00000000000..5ba985c8f84
--- /dev/null
+++ b/test/Allure/GenerateAllureReport.ps1
@@ -0,0 +1,56 @@
+#Requires -Version 7
+
+<#
+.SYNOPSIS
+ This script is called after all the Allure data is merged into one location and generates the Allure report.
+
+ It is getting the data from the test/Allure/CombinedResults directory and generating the report into the test/Allure/allure-report directory.
+
+ NOTE: Preserving history between runs is handled in the GitHub Actions workflow by downloading and uploading the history folder to allure_data_history branch (test/Allure/history).
+#>
+
+$OFS = "`r`n"
+
+# Get base path since paths can differ from machine to machine
+$pathstring = $pwd.Path
+if ($pathstring.Contains("test")) {
+ $position = $pathString.IndexOf("test")
+ $basePath = $pathstring.Substring(0,$position-1) # take off slash off end as well
+} else {
+ $basePath = $pathstring # already in base and not in test
+ Set-Location .\test\Allure\
+}
+
+# Location of all the allure results
+$allureResultsCombinedDir = "$basePath/test/Allure/CombinedResults"
+
+# Double check combined results dir exists
+if (-not (Test-Path -Path $allureResultsCombinedDir)) {
+ Write-Error -Message "The Combined results directory $allureResultsCombinedDir does not exist. " -Category ObjectNotFound
+ exit 1
+}
+
+# Copy categories.json to the CombinedResults directory
+Write-Host "Copying categories.json to $allureResultsCombinedDir"
+Copy-Item -Path "$basePath/test/Allure/categories.json" -Destination "$allureResultsCombinedDir/categories.json"
+
+# Generate the report
+Write-Host "Generate the Allure report from $allureResultsCombinedDir"
+allure generate CombinedResults -o allure-report --clean
+
+# verify report generated
+$reportDir = "$basePath/test/Allure/allure-report"
+if (-not (Test-Path -Path $reportDir)) {
+ Write-Error -Message "The Allure report directory $reportDir did not get created." -Category ObjectNotFound
+ exit 1
+}
+else {
+ Write-Host "Allure report generated successfully at $reportDir. Use 'allure open allure-report' to view it locally."
+}
+
+Write-Output "************************"
+Write-Output "**"
+Write-Output "** Done!"
+Write-Output "**"
+Write-Output "************************"
+
diff --git a/test/Allure/categories.json b/test/Allure/categories.json
new file mode 100644
index 00000000000..9cb55af5042
--- /dev/null
+++ b/test/Allure/categories.json
@@ -0,0 +1,32 @@
+[
+ {
+ "name": "Assertion Failures",
+ "matchedStatuses": ["assert"],
+ "messageRegex": ".*expected.*but found.*"
+ },
+ {
+ "name": "Connection Failures",
+ "matchedStatuses": ["failed"],
+ "messageRegex": ".*Failed to connect within.*"
+ },
+ {
+ "name": "All Other Failures",
+ "matchedStatuses": ["failed"],
+ "messageRegex": ".*"
+ },
+ {
+ "name": "All Broken",
+ "matchedStatuses": ["broken"],
+ "messageRegex": ".*"
+ },
+ {
+ "name": "All Skipped",
+ "matchedStatuses": ["skipped"],
+ "messageRegex": ".*"
+ },
+ {
+ "name": "All Unknown",
+ "matchedStatuses": ["unknown"],
+ "messageRegex": ".*"
+ }
+]
\ No newline at end of file
diff --git a/test/Garnet.test.cluster/ClusterAadAuthTests.cs b/test/Garnet.test.cluster/ClusterAadAuthTests.cs
index 86d6bce69d8..80a86f82eed 100644
--- a/test/Garnet.test.cluster/ClusterAadAuthTests.cs
+++ b/test/Garnet.test.cluster/ClusterAadAuthTests.cs
@@ -1,22 +1,24 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
+using Allure.NUnit;
using Garnet.server.Auth.Settings;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens;
using NUnit.Framework;
using NUnit.Framework.Legacy;
+
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture]
[NonParallelizable]
- class ClusterAadAuthTests
+ class ClusterAadAuthTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test.cluster/ClusterAuthCommsTests.cs b/test/Garnet.test.cluster/ClusterAuthCommsTests.cs
index 365ac30290d..78f17c35e5a 100644
--- a/test/Garnet.test.cluster/ClusterAuthCommsTests.cs
+++ b/test/Garnet.test.cluster/ClusterAuthCommsTests.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
+using Allure.NUnit;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -11,8 +12,9 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- internal class ClusterAuthCommsTests
+ internal class ClusterAuthCommsTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test.cluster/ClusterConfigTests.cs b/test/Garnet.test.cluster/ClusterConfigTests.cs
index 8e41c773022..3ff1f5501fc 100644
--- a/test/Garnet.test.cluster/ClusterConfigTests.cs
+++ b/test/Garnet.test.cluster/ClusterConfigTests.cs
@@ -4,6 +4,7 @@
using System.Linq;
using System.Net;
using System.Text;
+using Allure.NUnit;
using Garnet.cluster;
using Garnet.common;
using Microsoft.Extensions.Logging;
@@ -13,8 +14,9 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- internal class ClusterConfigTests
+ internal class ClusterConfigTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test.cluster/ClusterManagementTests.cs b/test/Garnet.test.cluster/ClusterManagementTests.cs
index 20b87d1a3cb..ebf38b1bd23 100644
--- a/test/Garnet.test.cluster/ClusterManagementTests.cs
+++ b/test/Garnet.test.cluster/ClusterManagementTests.cs
@@ -8,6 +8,7 @@
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -21,8 +22,9 @@ public enum InstanceType
Cluster
}
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- public class ClusterManagementTests
+ public class ClusterManagementTests : AllureTestBase
{
ClusterTestContext context;
readonly int defaultShards = 3;
diff --git a/test/Garnet.test.cluster/ClusterMigrateTLSTests.cs b/test/Garnet.test.cluster/ClusterMigrateTLSTests.cs
index 71b8ac2219b..6931f61f0ca 100644
--- a/test/Garnet.test.cluster/ClusterMigrateTLSTests.cs
+++ b/test/Garnet.test.cluster/ClusterMigrateTLSTests.cs
@@ -3,12 +3,14 @@
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- public class ClusterTLSMT
+ public class ClusterTLSMT : AllureTestBase
{
ClusterMigrateTests tests;
diff --git a/test/Garnet.test.cluster/ClusterMigrateTests.cs b/test/Garnet.test.cluster/ClusterMigrateTests.cs
index 51e0088becd..4a9c92e6490 100644
--- a/test/Garnet.test.cluster/ClusterMigrateTests.cs
+++ b/test/Garnet.test.cluster/ClusterMigrateTests.cs
@@ -9,6 +9,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
#if DEBUG
using Garnet.server;
@@ -20,8 +21,9 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture(false), NonParallelizable]
- public class ClusterMigrateTests(bool UseTLS)
+ public class ClusterMigrateTests(bool UseTLS) : AllureTestBase
{
const int testTimeout = 100000;
diff --git a/test/Garnet.test.cluster/ClusterNegativeTests.cs b/test/Garnet.test.cluster/ClusterNegativeTests.cs
index c10d231631f..fb47b211217 100644
--- a/test/Garnet.test.cluster/ClusterNegativeTests.cs
+++ b/test/Garnet.test.cluster/ClusterNegativeTests.cs
@@ -8,6 +8,7 @@
using System.Net.Sockets;
using System.Text;
using System.Threading;
+using Allure.NUnit;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -22,8 +23,9 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- public class ClusterNegativeTests
+ public class ClusterNegativeTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test.cluster/ClusterRedirectTests.cs b/test/Garnet.test.cluster/ClusterRedirectTests.cs
index d0434027e79..954316fbfdd 100644
--- a/test/Garnet.test.cluster/ClusterRedirectTests.cs
+++ b/test/Garnet.test.cluster/ClusterRedirectTests.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using Allure.NUnit;
using Garnet.common;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
@@ -11,8 +12,9 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- public unsafe class ClusterRedirectTests
+ public unsafe class ClusterRedirectTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test.cluster/Garnet.test.cluster.csproj b/test/Garnet.test.cluster/Garnet.test.cluster.csproj
index e8558f43e14..e150abe8284 100644
--- a/test/Garnet.test.cluster/Garnet.test.cluster.csproj
+++ b/test/Garnet.test.cluster/Garnet.test.cluster.csproj
@@ -17,6 +17,7 @@
+
@@ -26,6 +27,8 @@
+
+
@@ -53,4 +56,9 @@
PreserveNewest
+
+
+
+ false
+
diff --git a/test/Garnet.test.cluster/RedirectTests/ClusterSlotVerificationTests.cs b/test/Garnet.test.cluster/RedirectTests/ClusterSlotVerificationTests.cs
index b35440549dd..0da284bf439 100644
--- a/test/Garnet.test.cluster/RedirectTests/ClusterSlotVerificationTests.cs
+++ b/test/Garnet.test.cluster/RedirectTests/ClusterSlotVerificationTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using Microsoft.Extensions.Logging;
@@ -22,8 +23,10 @@ public sealed class BaseCommandComparer : IEqualityComparer
public unsafe int GetHashCode([DisallowNull] BaseCommand obj) => obj.Command.GetHashCode();
}
+ [AllureNUnit]
+ [TestFixture]
[NonParallelizable]
- public class ClusterSlotVerificationTests
+ public class ClusterSlotVerificationTests : AllureTestBase
{
static readonly HashSet TestCommands = new(BaseCommandComparer.Instance)
{
diff --git a/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationBaseTests.cs b/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationBaseTests.cs
index d3d9353255e..9382412b831 100644
--- a/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationBaseTests.cs
+++ b/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationBaseTests.cs
@@ -11,6 +11,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using Microsoft.Extensions.Logging;
@@ -20,8 +21,10 @@
namespace Garnet.test.cluster
{
+ [AllureNUnit]
+ [TestFixture]
[NonParallelizable]
- public class ClusterReplicationBaseTests
+ public class ClusterReplicationBaseTests : AllureTestBase
{
public (Action, string)[] GetUnitTests()
{
diff --git a/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationDisklessSyncTests.cs b/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationDisklessSyncTests.cs
index a5849f949eb..01471b41a78 100644
--- a/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationDisklessSyncTests.cs
+++ b/test/Garnet.test.cluster/ReplicationTests/ClusterReplicationDisklessSyncTests.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using Allure.NUnit;
#if DEBUG
using Garnet.common;
#endif
@@ -21,8 +22,10 @@ namespace Garnet.test.cluster
/// 3. Replica same history and different version and AOF
/// 4. Replica different history, version and AOF
///
+ [AllureNUnit]
+ [TestFixture]
[NonParallelizable]
- public class ClusterReplicationDisklessSyncTests
+ public class ClusterReplicationDisklessSyncTests : AllureTestBase
{
ClusterTestContext context;
readonly int keyCount = 256;
diff --git a/test/Garnet.test.cluster/ReplicationTests/ClusterResetDuringReplicationTests.cs b/test/Garnet.test.cluster/ReplicationTests/ClusterResetDuringReplicationTests.cs
index cb18e0ae80c..e2f2c71ba8f 100644
--- a/test/Garnet.test.cluster/ReplicationTests/ClusterResetDuringReplicationTests.cs
+++ b/test/Garnet.test.cluster/ReplicationTests/ClusterResetDuringReplicationTests.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
@@ -16,8 +17,10 @@ namespace Garnet.test.cluster.ReplicationTests
/// These tests simulate scenarios where a replica gets stuck or is in replication attach and verify that
/// CLUSTER RESET HARD can properly cancel ongoing operations and allow the replica to be reused.
///
+ [AllureNUnit]
+ [TestFixture]
[NonParallelizable]
- public class ClusterResetDuringReplicationTests
+ public class ClusterResetDuringReplicationTests : AllureTestBase
{
ClusterTestContext context;
diff --git a/test/Garnet.test/AllureTestBase.cs b/test/Garnet.test/AllureTestBase.cs
new file mode 100644
index 00000000000..811f1155e26
--- /dev/null
+++ b/test/Garnet.test/AllureTestBase.cs
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+using System;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
+using Allure.Net.Commons;
+using NUnit.Framework;
+
+namespace Garnet.test
+{
+
+ ///
+ /// Used as base class for Allure tests to label environment
+ ///
+ public abstract class AllureTestBase
+ {
+ [SetUp]
+ public void LabelEnvironment()
+ {
+ var os = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? nameof(OSPlatform.Linux) :
+ RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? nameof(OSPlatform.Windows) :
+ RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? nameof(OSPlatform.OSX) :
+ "unknown";
+
+ var frameworkAttr = Assembly.GetExecutingAssembly()
+ .GetCustomAttribute();
+ var framework = frameworkAttr?.FrameworkName.Split(',').LastOrDefault()?.Replace("Version=v", "net") ?? "unknown";
+
+ var config = Assembly.GetExecutingAssembly()
+ .GetCustomAttribute()?.Configuration ?? "unknown";
+ var timestamp = DateTime.Now.ToString("M/d/yyyy");
+ var fullName = $"[{os}, {framework}, {config}]";
+ var namespaceName = GetType().Namespace ?? "UnknownNamespace";
+
+ AllureLifecycle.Instance.UpdateTestCase(x =>
+ {
+ // Remove any default suite/subSuite labels that NUnit added
+ x.labels.RemoveAll(l => l.name == "suite" || l.name == "subSuite");
+
+ // apply your custom hierarchy
+ x.labels.Add(Label.ParentSuite($"{namespaceName} - {timestamp}"));
+ x.labels.Add(Label.Suite(os));
+ x.labels.Add(Label.SubSuite($"{framework} | {config}"));
+ });
+
+ // allows to separate out tests based on config but still hold history
+ AllureApi.AddTestParameter("env", fullName);
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Garnet.test/CacheSizeTrackerTests.cs b/test/Garnet.test/CacheSizeTrackerTests.cs
index 6d988426165..775090f2ec8 100644
--- a/test/Garnet.test/CacheSizeTrackerTests.cs
+++ b/test/Garnet.test/CacheSizeTrackerTests.cs
@@ -1,8 +1,8 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System;
using System.Threading;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -14,8 +14,9 @@ namespace Garnet.test
using ObjectStoreAllocator = GenericAllocator>>;
using ObjectStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class CacheSizeTrackerTests
+ public class CacheSizeTrackerTests : AllureTestBase
{
GarnetServer server;
TsavoriteKV objStore;
diff --git a/test/Garnet.test/DocsTests.cs b/test/Garnet.test/DocsTests.cs
index 6dd77435022..5bfa1a59488 100644
--- a/test/Garnet.test/DocsTests.cs
+++ b/test/Garnet.test/DocsTests.cs
@@ -1,15 +1,16 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
+using Allure.NUnit;
using NUnit.Framework;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public partial class DocsTests
+ public partial class DocsTests : AllureTestBase
{
[GeneratedRegex(@"^\s*\|\s*\|\s*\[(?[^\]]+)\]\(.+?\)\s*\|\s*(?[➖])")]
private static partial Regex CommandLinkAndMinusRegex();
diff --git a/test/Garnet.test/ExpiredKeyDeletionTests.cs b/test/Garnet.test/ExpiredKeyDeletionTests.cs
index b777c24ca61..0ea6362a7ab 100644
--- a/test/Garnet.test/ExpiredKeyDeletionTests.cs
+++ b/test/Garnet.test/ExpiredKeyDeletionTests.cs
@@ -1,17 +1,18 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- class ExpiredKeyDeletionTests
+ class ExpiredKeyDeletionTests : AllureTestBase
{
private const int ExpiredKeyDeletionScanFrequencySecs = 10;
diff --git a/test/Garnet.test/FuzzTargetTests.cs b/test/Garnet.test/FuzzTargetTests.cs
index 8429ea9c78c..255a67012e9 100644
--- a/test/Garnet.test/FuzzTargetTests.cs
+++ b/test/Garnet.test/FuzzTargetTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Reflection;
using System.Text;
+using Allure.NUnit;
using Garnet.fuzz;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -13,7 +14,9 @@ namespace Garnet.test
///
/// Tests that assert the basics of Garnet.fuzz still work, so they aren't broken between fuzzing runs.
///
- public class FuzzTargetTests
+ [AllureNUnit]
+ [TestFixture]
+ public class FuzzTargetTests : AllureTestBase
{
[Test]
public void TestsForAllTargets()
diff --git a/test/Garnet.test/Garnet.test.csproj b/test/Garnet.test/Garnet.test.csproj
index aa1952ee577..efae0d31285 100644
--- a/test/Garnet.test/Garnet.test.csproj
+++ b/test/Garnet.test/Garnet.test.csproj
@@ -9,7 +9,7 @@
1701;1702;1591
-
+
@@ -25,6 +25,8 @@
+
+
@@ -67,4 +69,10 @@
PreserveNewest
+
+
+
+ false
+
+
diff --git a/test/Garnet.test/GarnetBitmapTests.cs b/test/Garnet.test/GarnetBitmapTests.cs
index 7fbc4cc3fd1..63bc89ceb7e 100644
--- a/test/Garnet.test/GarnetBitmapTests.cs
+++ b/test/Garnet.test/GarnetBitmapTests.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics.Tensors;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -13,7 +14,9 @@
namespace Garnet.test
{
- public class GarnetBitmapTests
+ [AllureNUnit]
+ [TestFixture]
+ public class GarnetBitmapTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/GarnetClientTests.cs b/test/Garnet.test/GarnetClientTests.cs
index f69389dafa2..7d9ee75bb09 100644
--- a/test/Garnet.test/GarnetClientTests.cs
+++ b/test/Garnet.test/GarnetClientTests.cs
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System;
using System.Linq;
using System.Net;
@@ -8,14 +7,16 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class GarnetClientTests
+ public class GarnetClientTests : AllureTestBase
{
readonly string[,] worldcities = new string[,] {
diff --git a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathExecuteTests.cs b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathExecuteTests.cs
index 7e2c52f43ba..086ec92af45 100644
--- a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathExecuteTests.cs
+++ b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathExecuteTests.cs
@@ -24,21 +24,22 @@
// OTHER DEALINGS IN THE SOFTWARE.
#endregion
-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.RegularExpressions;
+using Allure.NUnit;
using GarnetJSON.JSONPath;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test.JSONPath
{
+ [AllureNUnit]
[TestFixture]
- public class JsonPathExecuteTests
+ public class JsonPathExecuteTests : AllureTestBase
{
[Test]
public void GreaterThanIssue1518()
diff --git a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathParseTests.cs b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathParseTests.cs
index 32bb2130ffe..814ce019fd8 100644
--- a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathParseTests.cs
+++ b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathParseTests.cs
@@ -29,14 +29,16 @@
using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Nodes;
+using Allure.NUnit;
using GarnetJSON.JSONPath;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test.JSONPath
{
+ [AllureNUnit]
[TestFixture]
- public class JsonPathParseTests
+ public class JsonPathParseTests : AllureTestBase
{
[Test]
public void BooleanQuery_TwoValues()
diff --git a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathRegressionTests.cs b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathRegressionTests.cs
index 7f39656199a..ddb7b51ac64 100644
--- a/test/Garnet.test/GarnetJSON/JSONPath/JsonPathRegressionTests.cs
+++ b/test/Garnet.test/GarnetJSON/JSONPath/JsonPathRegressionTests.cs
@@ -24,7 +24,6 @@
// OTHER DEALINGS IN THE SOFTWARE.
#endregion
-
#nullable enable
using System;
using System.Collections.Generic;
@@ -33,14 +32,17 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
+using Allure.NUnit;
using GarnetJSON.JSONPath;
using NUnit.Framework;
using NUnit.Framework.Legacy;
+
namespace Garnet.test.JSONPath
{
+ [AllureNUnit]
[TestFixture]
- public class JsonPathRegressionTests
+ public class JsonPathRegressionTests : AllureTestBase
{
public class RegressionTestQuery
{
diff --git a/test/Garnet.test/GarnetJSON/JSONPath/QueryExpressionTests.cs b/test/Garnet.test/GarnetJSON/JSONPath/QueryExpressionTests.cs
index 47da486f226..eff3a084533 100644
--- a/test/Garnet.test/GarnetJSON/JSONPath/QueryExpressionTests.cs
+++ b/test/Garnet.test/GarnetJSON/JSONPath/QueryExpressionTests.cs
@@ -24,17 +24,19 @@
// OTHER DEALINGS IN THE SOFTWARE.
#endregion
-
using System.Collections.Generic;
using System.Text.Json.Nodes;
+using Allure.NUnit;
using GarnetJSON.JSONPath;
using NUnit.Framework;
using NUnit.Framework.Legacy;
+
namespace Garnet.test.JSONPath
{
+ [AllureNUnit]
[TestFixture]
- public class QueryExpressionTests
+ public class QueryExpressionTests : AllureTestBase
{
[Test]
public void AndExpressionTest()
diff --git a/test/Garnet.test/GarnetJSON/JsonCommandsTest.cs b/test/Garnet.test/GarnetJSON/JsonCommandsTest.cs
index b85d74c9c4b..10621822fd5 100644
--- a/test/Garnet.test/GarnetJSON/JsonCommandsTest.cs
+++ b/test/Garnet.test/GarnetJSON/JsonCommandsTest.cs
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System;
using System.Collections.Generic;
using System.IO;
@@ -8,6 +7,7 @@
using System.Reflection;
using System.Text;
using System.Threading;
+using Allure.NUnit;
using Garnet.server;
using GarnetJSON;
using NUnit.Framework;
@@ -16,8 +16,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- class JsonCommandsTest
+ class JsonCommandsTest : AllureTestBase
{
GarnetServer server;
string binPath;
diff --git a/test/Garnet.test/GarnetObjectTests.cs b/test/Garnet.test/GarnetObjectTests.cs
index c507aef5b81..b665860d167 100644
--- a/test/Garnet.test/GarnetObjectTests.cs
+++ b/test/Garnet.test/GarnetObjectTests.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -12,8 +13,9 @@ namespace Garnet.test
using ObjectStoreAllocator = GenericAllocator>>;
using ObjectStoreFunctions = StoreFunctions>;
+ [AllureNUnit]
[TestFixture]
- public class GarnetObjectTests
+ public class GarnetObjectTests : AllureTestBase
{
TsavoriteKV store;
IDevice logDevice, objectLogDevice;
diff --git a/test/Garnet.test/GarnetServerConfigTests.cs b/test/Garnet.test/GarnetServerConfigTests.cs
index fb85e063925..04a97488897 100644
--- a/test/Garnet.test/GarnetServerConfigTests.cs
+++ b/test/Garnet.test/GarnetServerConfigTests.cs
@@ -10,6 +10,7 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
+using Allure.NUnit;
using CommandLine;
using Garnet.common;
using Garnet.server;
@@ -21,8 +22,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture, NonParallelizable]
- public class GarnetServerConfigTests
+ public class GarnetServerConfigTests : AllureTestBase
{
[Test]
public void DefaultConfigurationOptionsCoverage()
diff --git a/test/Garnet.test/GeoHashTests.cs b/test/Garnet.test/GeoHashTests.cs
index c60cc3410ab..1b93a84d1d4 100644
--- a/test/Garnet.test/GeoHashTests.cs
+++ b/test/Garnet.test/GeoHashTests.cs
@@ -3,13 +3,16 @@
using System;
using System.Globalization;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
- public class GeoHashTests
+ [AllureNUnit]
+ [TestFixture]
+ public class GeoHashTests : AllureTestBase
{
[Test]
[TestCase(30.5388942218, 104.0555758833)]
diff --git a/test/Garnet.test/HyperLogLogTests.cs b/test/Garnet.test/HyperLogLogTests.cs
index 69e528a0e27..f11edcbe508 100644
--- a/test/Garnet.test/HyperLogLogTests.cs
+++ b/test/Garnet.test/HyperLogLogTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -11,7 +12,9 @@
namespace Garnet.test
{
- public unsafe class HyperLogLogTests
+ [AllureNUnit]
+ [TestFixture]
+ public unsafe class HyperLogLogTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/IndexGrowthTests.cs b/test/Garnet.test/IndexGrowthTests.cs
index 785866f85f9..373777c3edd 100644
--- a/test/Garnet.test/IndexGrowthTests.cs
+++ b/test/Garnet.test/IndexGrowthTests.cs
@@ -3,14 +3,16 @@
using System;
using System.Threading;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class IndexGrowthTests
+ public class IndexGrowthTests : AllureTestBase
{
GarnetServer server;
private int indexResizeTaskDelaySeconds = 10;
diff --git a/test/Garnet.test/LuaScriptRunnerTests.cs b/test/Garnet.test/LuaScriptRunnerTests.cs
index 61f37a54f0f..306bc300c9b 100644
--- a/test/Garnet.test/LuaScriptRunnerTests.cs
+++ b/test/Garnet.test/LuaScriptRunnerTests.cs
@@ -8,6 +8,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Threading;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using Microsoft.Extensions.Logging;
@@ -16,8 +17,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- internal class LuaScriptRunnerTests
+ internal class LuaScriptRunnerTests : AllureTestBase
{
[Test]
public void CannotRunUnsafeScript()
diff --git a/test/Garnet.test/LuaScriptTests.cs b/test/Garnet.test/LuaScriptTests.cs
index 6df9ce6e1f8..8712b05ba0d 100644
--- a/test/Garnet.test/LuaScriptTests.cs
+++ b/test/Garnet.test/LuaScriptTests.cs
@@ -14,6 +14,7 @@
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -22,6 +23,7 @@
namespace Garnet.test
{
+ [AllureNUnit]
// Limits chosen here to allow completion - if you have to bump them up, consider that you might have introduced a regression
[TestFixture(LuaMemoryManagementMode.Native, "", "")]
[TestFixture(LuaMemoryManagementMode.Native, "", "00:00:02")]
@@ -29,7 +31,7 @@ namespace Garnet.test
[TestFixture(LuaMemoryManagementMode.Tracked, "13m", "")]
[TestFixture(LuaMemoryManagementMode.Managed, "", "")]
[TestFixture(LuaMemoryManagementMode.Managed, "17m", "")]
- public class LuaScriptTests
+ public class LuaScriptTests : AllureTestBase
{
///
/// Writes it's parameter directly into the response stream, followed by a \r\n.
diff --git a/test/Garnet.test/MultiDatabaseTests.cs b/test/Garnet.test/MultiDatabaseTests.cs
index d1775e64e19..7d9dc237b75 100644
--- a/test/Garnet.test/MultiDatabaseTests.cs
+++ b/test/Garnet.test/MultiDatabaseTests.cs
@@ -3,6 +3,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -11,8 +12,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class MultiDatabaseTests
+ public class MultiDatabaseTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/NetworkTests.cs b/test/Garnet.test/NetworkTests.cs
index 884caa27ce7..5fb73c517ff 100644
--- a/test/Garnet.test/NetworkTests.cs
+++ b/test/Garnet.test/NetworkTests.cs
@@ -3,14 +3,16 @@
#if DEBUG
using System.Threading;
+using Allure.NUnit;
using Garnet.common;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class NetworkTests
+ public class NetworkTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/ObjectTestsForOutput.cs b/test/Garnet.test/ObjectTestsForOutput.cs
index bcaf7b256a1..1e6c466015f 100644
--- a/test/Garnet.test/ObjectTestsForOutput.cs
+++ b/test/Garnet.test/ObjectTestsForOutput.cs
@@ -1,15 +1,17 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-
using System.Text;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
+
+ [AllureNUnit]
[TestFixture]
- public class ObjectTestsForOutput
+ public class ObjectTestsForOutput : AllureTestBase
{
protected GarnetServer server;
@@ -123,7 +125,6 @@ public async Task CanUseZPopMaxWithLeftOverBuffer(int size)
#endregion
#region hashmaps
-
[Test]
[TestCase(100)]
[TestCase(131042)]
@@ -164,6 +165,7 @@ public async Task CanUseHGETWithLeftOverBuffer(int size)
ClassicAssert.AreEqual("field2value", t4Result[1]);
}
+
[Test]
[TestCase(100)]
[TestCase(131042)]
@@ -211,11 +213,6 @@ public async Task CanUseHKEYSWithLeftOverBuffer(int size)
ClassicAssert.AreEqual("field4", t4Result[3]);
}
-
-
-
-
-
#endregion
#region lists
diff --git a/test/Garnet.test/ReadCacheTests.cs b/test/Garnet.test/ReadCacheTests.cs
index 4e6015bc543..da213014078 100644
--- a/test/Garnet.test/ReadCacheTests.cs
+++ b/test/Garnet.test/ReadCacheTests.cs
@@ -1,14 +1,16 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class ReadCacheTests
+ public class ReadCacheTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/Resp/ACL/AclConfigurationFileTests.cs b/test/Garnet.test/Resp/ACL/AclConfigurationFileTests.cs
index bac19583320..b62e9c83951 100644
--- a/test/Garnet.test/Resp/ACL/AclConfigurationFileTests.cs
+++ b/test/Garnet.test/Resp/ACL/AclConfigurationFileTests.cs
@@ -5,6 +5,7 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server.ACL;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -15,6 +16,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for ACL Configuration file related operations.
///
+ [AllureNUnit]
[TestFixture]
class AclConfigurationFileTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/AclParserTests.cs b/test/Garnet.test/Resp/ACL/AclParserTests.cs
index c4789bd5e19..5c6a1b0b435 100644
--- a/test/Garnet.test/Resp/ACL/AclParserTests.cs
+++ b/test/Garnet.test/Resp/ACL/AclParserTests.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
using Garnet.server.ACL;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -10,6 +11,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for the .
///
+ [AllureNUnit]
[TestFixture]
internal class AclParserTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/AclTest.cs b/test/Garnet.test/Resp/ACL/AclTest.cs
index 9f5e614cdab..9d4355fbde1 100644
--- a/test/Garnet.test/Resp/ACL/AclTest.cs
+++ b/test/Garnet.test/Resp/ACL/AclTest.cs
@@ -9,7 +9,7 @@ namespace Garnet.test.Resp.ACL
///
/// Base class used for all RESP ACL tests
///
- abstract class AclTest
+ abstract class AclTest : AllureTestBase
{
///
/// Dummy password used by some of the tests.
diff --git a/test/Garnet.test/Resp/ACL/BasicTests.cs b/test/Garnet.test/Resp/ACL/BasicTests.cs
index 53aedc5fe9a..0b38833871e 100644
--- a/test/Garnet.test/Resp/ACL/BasicTests.cs
+++ b/test/Garnet.test/Resp/ACL/BasicTests.cs
@@ -3,6 +3,7 @@
using System;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -12,6 +13,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for Resp ACL commands that don't have subcommands
///
+ [AllureNUnit]
[TestFixture]
internal class BasicTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/DeleteUserTests.cs b/test/Garnet.test/Resp/ACL/DeleteUserTests.cs
index c5f89bd3c8e..f80618e309e 100644
--- a/test/Garnet.test/Resp/ACL/DeleteUserTests.cs
+++ b/test/Garnet.test/Resp/ACL/DeleteUserTests.cs
@@ -3,6 +3,7 @@
using System;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -11,6 +12,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for ACL DELUSER operations.
///
+ [AllureNUnit]
[TestFixture]
class DeleteUserTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/GetUserTests.cs b/test/Garnet.test/Resp/ACL/GetUserTests.cs
index 07ca6e802da..b9f60bdc25b 100644
--- a/test/Garnet.test/Resp/ACL/GetUserTests.cs
+++ b/test/Garnet.test/Resp/ACL/GetUserTests.cs
@@ -5,6 +5,7 @@
using System.IO;
using System.Text;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
@@ -14,6 +15,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for ACL GETUSER command.
///
+ [AllureNUnit]
[TestFixture]
internal class GetUserTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/ParallelTests.cs b/test/Garnet.test/Resp/ACL/ParallelTests.cs
index 54b85767342..49001e2ff79 100644
--- a/test/Garnet.test/Resp/ACL/ParallelTests.cs
+++ b/test/Garnet.test/Resp/ACL/ParallelTests.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server.ACL;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -12,6 +13,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests that operate in parallel on the ACL
///
+ [AllureNUnit]
[TestFixture]
internal class ParallelTests : AclTest
{
diff --git a/test/Garnet.test/Resp/ACL/RespCommandTests.cs b/test/Garnet.test/Resp/ACL/RespCommandTests.cs
index 3b02ac68853..8fb706cfd41 100644
--- a/test/Garnet.test/Resp/ACL/RespCommandTests.cs
+++ b/test/Garnet.test/Resp/ACL/RespCommandTests.cs
@@ -10,6 +10,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.client;
using Garnet.server;
using Garnet.server.ACL;
@@ -18,7 +19,9 @@
namespace Garnet.test.Resp.ACL
{
- public class RespCommandTests
+ [AllureNUnit]
+ [TestFixture]
+ public class RespCommandTests : AllureTestBase
{
private const string DefaultPassword = nameof(RespCommandTests);
private const string DefaultUser = "default";
diff --git a/test/Garnet.test/Resp/ACL/SetUserTests.cs b/test/Garnet.test/Resp/ACL/SetUserTests.cs
index 5f751d9525e..2be3279b9f7 100644
--- a/test/Garnet.test/Resp/ACL/SetUserTests.cs
+++ b/test/Garnet.test/Resp/ACL/SetUserTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -12,6 +13,7 @@ namespace Garnet.test.Resp.ACL
///
/// Tests for ACL SETUSER operations.
///
+ [AllureNUnit]
[TestFixture]
class SetUserTests : AclTest
{
diff --git a/test/Garnet.test/Resp/GarnetAuthenticatorTests.cs b/test/Garnet.test/Resp/GarnetAuthenticatorTests.cs
index af92c5dd471..8728325e62f 100644
--- a/test/Garnet.test/Resp/GarnetAuthenticatorTests.cs
+++ b/test/Garnet.test/Resp/GarnetAuthenticatorTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Text;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using Garnet.server.Auth;
using Garnet.server.Auth.Settings;
@@ -15,7 +16,9 @@ namespace Garnet.test.Resp
///
/// Tests generic to all s.
///
- public class GarnetAuthenticatorTests
+ [AllureNUnit]
+ [TestFixture]
+ public class GarnetAuthenticatorTests : AllureTestBase
{
private delegate bool AuthenticateDelegate(ReadOnlySpan password, ReadOnlySpan username);
diff --git a/test/Garnet.test/Resp/RespParseFuzzRegressionTests.cs b/test/Garnet.test/Resp/RespParseFuzzRegressionTests.cs
index bc8e8c83298..f8d82443db5 100644
--- a/test/Garnet.test/Resp/RespParseFuzzRegressionTests.cs
+++ b/test/Garnet.test/Resp/RespParseFuzzRegressionTests.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using System;
+using Allure.NUnit;
using Garnet.common.Parsing;
using Garnet.server;
using NUnit.Framework;
@@ -14,8 +15,10 @@ namespace Garnet.test.Resp
///
/// Accordingly these are a bit of a grab bag, but they need to go somewhere.
///
+ [AllureNUnit]
+ [TestFixture]
[Category("FUZZING")]
- public class RespParseFuzzRegressionTests
+ public class RespParseFuzzRegressionTests : AllureTestBase
{
[Test]
public void MakeUpperCaseAccessViolation()
diff --git a/test/Garnet.test/Resp/RespReadUtilsTests.cs b/test/Garnet.test/Resp/RespReadUtilsTests.cs
index 802d0e498d4..043a05ed450 100644
--- a/test/Garnet.test/Resp/RespReadUtilsTests.cs
+++ b/test/Garnet.test/Resp/RespReadUtilsTests.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using System.Text;
+using Allure.NUnit;
using Garnet.common;
using Garnet.common.Parsing;
using NUnit.Framework;
@@ -12,7 +13,9 @@ namespace Garnet.test.Resp
///
/// Tests for RespReadUtils parsing functions.
///
- unsafe class RespReadUtilsTests
+ [AllureNUnit]
+ [TestFixture]
+ unsafe class RespReadUtilsTests : AllureTestBase
{
///
/// Tests that ReadLengthHeader successfully parses valid numbers.
diff --git a/test/Garnet.test/RespAdminCommandsTests.cs b/test/Garnet.test/RespAdminCommandsTests.cs
index f7819b7a776..6fa5b9dd509 100644
--- a/test/Garnet.test/RespAdminCommandsTests.cs
+++ b/test/Garnet.test/RespAdminCommandsTests.cs
@@ -6,6 +6,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -14,8 +15,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespAdminCommandsTests
+ public class RespAdminCommandsTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespAofAzureTests.cs b/test/Garnet.test/RespAofAzureTests.cs
index 3759cd59dc3..854fe9032e1 100644
--- a/test/Garnet.test/RespAofAzureTests.cs
+++ b/test/Garnet.test/RespAofAzureTests.cs
@@ -3,14 +3,16 @@
using System;
using System.Threading;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespAofAzureTests
+ public class RespAofAzureTests : AllureTestBase
{
GarnetServer server;
static readonly SortedSetEntry[] entries =
diff --git a/test/Garnet.test/RespAofTests.cs b/test/Garnet.test/RespAofTests.cs
index 098ced7d5a4..38b758a7a2f 100644
--- a/test/Garnet.test/RespAofTests.cs
+++ b/test/Garnet.test/RespAofTests.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -12,8 +13,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespAofTests
+ public class RespAofTests : AllureTestBase
{
GarnetServer server;
private IReadOnlyDictionary respCustomCommandsInfo;
diff --git a/test/Garnet.test/RespBlockingCollectionTests.cs b/test/Garnet.test/RespBlockingCollectionTests.cs
index c65436a969a..09ec79e4da3 100644
--- a/test/Garnet.test/RespBlockingCollectionTests.cs
+++ b/test/Garnet.test/RespBlockingCollectionTests.cs
@@ -6,6 +6,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -13,7 +14,9 @@
namespace Garnet.test
{
- public class RespBlockingCollectionTests
+ [AllureNUnit]
+ [TestFixture]
+ public class RespBlockingCollectionTests : AllureTestBase
{
GarnetServer server;
private static readonly Random random = Random.Shared;
diff --git a/test/Garnet.test/RespCommandTests.cs b/test/Garnet.test/RespCommandTests.cs
index 595dfddc242..7c4ec23b49a 100644
--- a/test/Garnet.test/RespCommandTests.cs
+++ b/test/Garnet.test/RespCommandTests.cs
@@ -7,6 +7,7 @@
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -18,8 +19,9 @@ namespace Garnet.test
///
/// This test class tests the RESP COMMAND and COMMAND INFO commands
///
+ [AllureNUnit]
[TestFixture]
- public class RespCommandTests
+ public class RespCommandTests : AllureTestBase
{
GarnetServer server;
private string extTestDir;
diff --git a/test/Garnet.test/RespConfigTests.cs b/test/Garnet.test/RespConfigTests.cs
index 915bea18b8d..9c5c30f3f50 100644
--- a/test/Garnet.test/RespConfigTests.cs
+++ b/test/Garnet.test/RespConfigTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Linq;
using System.Threading;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -19,9 +20,10 @@ namespace Garnet.test
///
/// Test dynamically changing server configuration using CONFIG SET command.
///
+ [AllureNUnit]
[TestFixture(false)]
[TestFixture(true)]
- public class RespConfigTests
+ public class RespConfigTests : AllureTestBase
{
GarnetServer server;
private string memorySize = "17g";
@@ -278,12 +280,15 @@ public void ConfigObjHeapSizeTest(string smallerSize, string largerSize, string
}
}
+
+
///
/// Test memory utilization behavior when dynamically changing the memory size configuration using CONFIG SET.
///
+ [AllureNUnit]
[TestFixture(false)]
[TestFixture(true)]
- public class RespConfigUtilizationTests
+ public class RespConfigUtilizationTests : AllureTestBase
{
GarnetServer server;
private string memorySize = "3m";
@@ -561,9 +566,10 @@ public void ConfigSetMemorySizeRecoveryTest(StoreType storeType, string largerSi
///
/// Test memory utilization behavior when dynamically changing the memory size configuration using CONFIG SET.
///
+ [AllureNUnit]
[TestFixture(false)]
[TestFixture(true)]
- public class RespConfigIndexUtilizationTests
+ public class RespConfigIndexUtilizationTests : AllureTestBase
{
GarnetServer server;
private string memorySize = "3m";
@@ -689,9 +695,10 @@ long GetOverflowBucketAllocations() =>
///
/// Test memory utilization behavior when dynamically changing the memory size configuration using CONFIG SET.
///
+ [AllureNUnit]
[TestFixture(false)]
[TestFixture(true)]
- public class RespConfigHeapUtilizationTests
+ public class RespConfigHeapUtilizationTests : AllureTestBase
{
GarnetServer server;
private string memorySize = "3m";
diff --git a/test/Garnet.test/RespCustomCommandTests.cs b/test/Garnet.test/RespCustomCommandTests.cs
index a3b3d372be2..93b34e44cc1 100644
--- a/test/Garnet.test/RespCustomCommandTests.cs
+++ b/test/Garnet.test/RespCustomCommandTests.cs
@@ -11,6 +11,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using GarnetJSON;
@@ -222,8 +223,9 @@ public override unsafe void Main(TGarnetApi garnetApi, ref CustomPro
}
}
+ [AllureNUnit]
[TestFixture]
- public class RespCustomCommandTests
+ public class RespCustomCommandTests : AllureTestBase
{
GarnetServer server;
private string _extTestDir1;
diff --git a/test/Garnet.test/RespEtagTests.cs b/test/Garnet.test/RespEtagTests.cs
index 7b5f7720d88..2483f3d24d6 100644
--- a/test/Garnet.test/RespEtagTests.cs
+++ b/test/Garnet.test/RespEtagTests.cs
@@ -8,6 +8,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -15,8 +16,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespEtagTests
+ public class RespEtagTests : AllureTestBase
{
private GarnetServer server;
private Random r;
diff --git a/test/Garnet.test/RespGetLowMemoryTests.cs b/test/Garnet.test/RespGetLowMemoryTests.cs
index a5b1595af9e..7eaab95e63d 100644
--- a/test/Garnet.test/RespGetLowMemoryTests.cs
+++ b/test/Garnet.test/RespGetLowMemoryTests.cs
@@ -5,14 +5,16 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespGetLowMemoryTests
+ public class RespGetLowMemoryTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/RespHashTests.cs b/test/Garnet.test/RespHashTests.cs
index 3ca2202b144..890ec5d29d6 100644
--- a/test/Garnet.test/RespHashTests.cs
+++ b/test/Garnet.test/RespHashTests.cs
@@ -6,6 +6,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -13,8 +14,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespHashTests
+ public class RespHashTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespInfoTests.cs b/test/Garnet.test/RespInfoTests.cs
index 383f9cff5b1..8f40a65a71c 100644
--- a/test/Garnet.test/RespInfoTests.cs
+++ b/test/Garnet.test/RespInfoTests.cs
@@ -6,14 +6,16 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespInfoTests
+ public class RespInfoTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespListGarnetClientTests.cs b/test/Garnet.test/RespListGarnetClientTests.cs
index e3642d28e2a..056ee48c6fc 100644
--- a/test/Garnet.test/RespListGarnetClientTests.cs
+++ b/test/Garnet.test/RespListGarnetClientTests.cs
@@ -3,14 +3,16 @@
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.client;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespListGarnetClientTests
+ public class RespListGarnetClientTests : AllureTestBase
{
private GarnetServer server;
diff --git a/test/Garnet.test/RespListTests.cs b/test/Garnet.test/RespListTests.cs
index a0e7f234292..35f81b1e092 100644
--- a/test/Garnet.test/RespListTests.cs
+++ b/test/Garnet.test/RespListTests.cs
@@ -7,6 +7,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -14,8 +15,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- class RespListTests
+ class RespListTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/RespLowMemoryTests.cs b/test/Garnet.test/RespLowMemoryTests.cs
index f6406f4001a..32e0bf26863 100644
--- a/test/Garnet.test/RespLowMemoryTests.cs
+++ b/test/Garnet.test/RespLowMemoryTests.cs
@@ -2,14 +2,16 @@
// Licensed under the MIT license.
using System;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespLowMemoryTests
+ public class RespLowMemoryTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespMetricsTest.cs b/test/Garnet.test/RespMetricsTest.cs
index 024cd94954b..cdbc4bfefd8 100644
--- a/test/Garnet.test/RespMetricsTest.cs
+++ b/test/Garnet.test/RespMetricsTest.cs
@@ -4,6 +4,7 @@
using System;
using System.Linq;
using System.Threading;
+using Allure.NUnit;
using Garnet.common;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
@@ -12,8 +13,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespMetricsTest
+ public class RespMetricsTest : AllureTestBase
{
GarnetServer server;
ILoggerFactory loggerFactory;
diff --git a/test/Garnet.test/RespModuleTests.cs b/test/Garnet.test/RespModuleTests.cs
index 99710fcf2c1..67fa83c9ad6 100644
--- a/test/Garnet.test/RespModuleTests.cs
+++ b/test/Garnet.test/RespModuleTests.cs
@@ -4,14 +4,16 @@
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespModuleTests
+ public class RespModuleTests : AllureTestBase
{
GarnetServer server;
private string testModuleDir;
@@ -347,8 +349,9 @@ public void TestNoOpModule(bool loadFromDll)
}
[NonParallelizable]
+ [AllureNUnit]
[TestFixture]
- public class RespModuleAdditionalTests
+ public class RespModuleAdditionalTests : AllureTestBase
{
private string testModuleDir;
string binPath;
diff --git a/test/Garnet.test/RespPubSubTests.cs b/test/Garnet.test/RespPubSubTests.cs
index 35b1d631681..d3e9da69856 100644
--- a/test/Garnet.test/RespPubSubTests.cs
+++ b/test/Garnet.test/RespPubSubTests.cs
@@ -5,14 +5,16 @@
using System.Linq;
using System.Security.Cryptography;
using System.Threading;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- class RespPubSubTests
+ class RespPubSubTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespRevivificationTests.cs b/test/Garnet.test/RespRevivificationTests.cs
index b73539be955..ec6c01e167b 100644
--- a/test/Garnet.test/RespRevivificationTests.cs
+++ b/test/Garnet.test/RespRevivificationTests.cs
@@ -4,14 +4,16 @@
using System;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- class RespRevivificationTests
+ class RespRevivificationTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/RespScanCommandsTests.cs b/test/Garnet.test/RespScanCommandsTests.cs
index dfb9b7ea238..c479c5704ed 100644
--- a/test/Garnet.test/RespScanCommandsTests.cs
+++ b/test/Garnet.test/RespScanCommandsTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -11,8 +12,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespScanCommandsTests
+ public class RespScanCommandsTests : AllureTestBase
{
GarnetServer server;
private IReadOnlyDictionary respCustomCommandsInfo;
diff --git a/test/Garnet.test/RespSetTest.cs b/test/Garnet.test/RespSetTest.cs
index ca5bb482a60..3ad050094e4 100644
--- a/test/Garnet.test/RespSetTest.cs
+++ b/test/Garnet.test/RespSetTest.cs
@@ -6,6 +6,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -14,8 +15,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespSetTest
+ public class RespSetTest : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespSlowLogTests.cs b/test/Garnet.test/RespSlowLogTests.cs
index 430f1f78b33..43968958341 100644
--- a/test/Garnet.test/RespSlowLogTests.cs
+++ b/test/Garnet.test/RespSlowLogTests.cs
@@ -1,14 +1,16 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespSlowLogTests
+ public class RespSlowLogTests : AllureTestBase
{
GarnetServer server;
int slowLogThreshold = 3_000_000;
diff --git a/test/Garnet.test/RespSortedSetGarnetClientTests.cs b/test/Garnet.test/RespSortedSetGarnetClientTests.cs
index 230d5fa66ee..2059d6f44f9 100644
--- a/test/Garnet.test/RespSortedSetGarnetClientTests.cs
+++ b/test/Garnet.test/RespSortedSetGarnetClientTests.cs
@@ -9,6 +9,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.client;
using Garnet.client.GarnetClientAPI;
using Garnet.common;
@@ -18,8 +19,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespSortedSetGarnetClientTests
+ public class RespSortedSetGarnetClientTests : AllureTestBase
{
protected GarnetServer server;
ManualResetEventSlim waiter;
diff --git a/test/Garnet.test/RespSortedSetGeoTests.cs b/test/Garnet.test/RespSortedSetGeoTests.cs
index ab0694c4ef0..318e640ab9b 100644
--- a/test/Garnet.test/RespSortedSetGeoTests.cs
+++ b/test/Garnet.test/RespSortedSetGeoTests.cs
@@ -5,6 +5,7 @@
using System.Globalization;
using System.Linq;
using System.Text;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -13,8 +14,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespSortedSetGeoTests
+ public class RespSortedSetGeoTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespSortedSetTests.cs b/test/Garnet.test/RespSortedSetTests.cs
index fbf78d8ef64..23dcaee8405 100644
--- a/test/Garnet.test/RespSortedSetTests.cs
+++ b/test/Garnet.test/RespSortedSetTests.cs
@@ -8,6 +8,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Embedded.server;
using Garnet.common;
using Garnet.server;
@@ -26,8 +27,9 @@ namespace Garnet.test
/* ObjectStoreFunctions */ StoreFunctions>,
GenericAllocator>>>>;
+ [AllureNUnit]
[TestFixture]
- public class RespSortedSetTests
+ public class RespSortedSetTests : AllureTestBase
{
protected GarnetServer server;
diff --git a/test/Garnet.test/RespTests.cs b/test/Garnet.test/RespTests.cs
index abf27a454b0..f7be4d3369f 100644
--- a/test/Garnet.test/RespTests.cs
+++ b/test/Garnet.test/RespTests.cs
@@ -10,6 +10,7 @@
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.client;
using Garnet.common;
using Garnet.server;
@@ -19,8 +20,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespTests
+ public class RespTests : AllureTestBase
{
GarnetServer server;
Random r;
diff --git a/test/Garnet.test/RespTlsTests.cs b/test/Garnet.test/RespTlsTests.cs
index bd39c426c2b..1815355749b 100644
--- a/test/Garnet.test/RespTlsTests.cs
+++ b/test/Garnet.test/RespTlsTests.cs
@@ -7,6 +7,7 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.common;
using Garnet.server;
using NUnit.Framework;
@@ -15,8 +16,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespTlsTests
+ public class RespTlsTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/RespTransactionProcTests.cs b/test/Garnet.test/RespTransactionProcTests.cs
index a6de02bfa22..b993312c20a 100644
--- a/test/Garnet.test/RespTransactionProcTests.cs
+++ b/test/Garnet.test/RespTransactionProcTests.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using System.Threading;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -9,8 +10,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class RespTransactionProcTests
+ public class RespTransactionProcTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/ScratchBufferAllocatorTests.cs b/test/Garnet.test/ScratchBufferAllocatorTests.cs
index 290f4778719..a1f50a1379a 100644
--- a/test/Garnet.test/ScratchBufferAllocatorTests.cs
+++ b/test/Garnet.test/ScratchBufferAllocatorTests.cs
@@ -1,13 +1,16 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Garnet.test
{
- public class ScratchBufferAllocatorTests
+ [AllureNUnit]
+ [TestFixture]
+ public class ScratchBufferAllocatorTests : AllureTestBase
{
[Test]
diff --git a/test/Garnet.test/TransactionTests.cs b/test/Garnet.test/TransactionTests.cs
index 73a7baee496..dbf277f4245 100644
--- a/test/Garnet.test/TransactionTests.cs
+++ b/test/Garnet.test/TransactionTests.cs
@@ -4,6 +4,7 @@
using System;
using System.Linq;
using System.Threading.Tasks;
+using Allure.NUnit;
using Garnet.server;
using NUnit.Framework;
using NUnit.Framework.Legacy;
@@ -11,8 +12,9 @@
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class TransactionTests
+ public class TransactionTests : AllureTestBase
{
GarnetServer server;
diff --git a/test/Garnet.test/UnixSocketTests.cs b/test/Garnet.test/UnixSocketTests.cs
index 3baa37cc687..a5c95477e2f 100644
--- a/test/Garnet.test/UnixSocketTests.cs
+++ b/test/Garnet.test/UnixSocketTests.cs
@@ -6,14 +6,16 @@
using System.IO;
using System.Net.Sockets;
using System.Threading.Tasks;
+using Allure.NUnit;
using NUnit.Framework;
using NUnit.Framework.Legacy;
using StackExchange.Redis;
namespace Garnet.test
{
+ [AllureNUnit]
[TestFixture]
- public class UnixSocketTests
+ public class UnixSocketTests : AllureTestBase
{
[SetUp]
public void Setup()
diff --git a/website/docs/dev/onboarding.md b/website/docs/dev/onboarding.md
index 22504f06719..be2063db09c 100644
--- a/website/docs/dev/onboarding.md
+++ b/website/docs/dev/onboarding.md
@@ -126,7 +126,14 @@ Any new feature, change to existing functionality or bug fixing needs to be done
``/branch-name
-3. Include Unit Tests to test the new commands or feature.
+3. Include Unit Tests for any new commands or feature. Allure enabled tests are required.
+
+ Full documentation about Allure can be found [here](https://allurereport.org/docs/).
+
+ Each test class must:
+ * Apply [AllureNUnit] custom attribute
+ * Apply [TestFixture] attribute
+ * Inherit from the AllureTestBase base class
4. Once it is ready for review, create a [Pull Request](https://github.com/microsoft/Garnet/pulls). Make sure to link it to your issue item in the development section.