Skip to content

Commit

Permalink
Run tests on multiple frameworks (#808)
Browse files Browse the repository at this point in the history
* Run tests on multiple frameworks

@bording helpfully suggested this in this comment:

#804 (comment)

* Add ref assemblies

* Bump framework version to 3.1

* Add mono to Travis to test net461

* Only test dotnet core 3 on Travis CI

* Do not test net461 via shell script, assuming that mono is not available
  • Loading branch information
lukebakken authored Apr 7, 2020
1 parent 9404246 commit f8409df
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 18 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
sudo: false
dist: xenial
language: csharp
dotnet: 3.1
mono: none
dotnet: 3.1.102

addons:
apt:
Expand All @@ -14,7 +14,7 @@ addons:

env:
global:
- RABBITMQ_VERSION=3.8.2
- RABBITMQ_VERSION=3.8.3
- RABBITMQ_DOWNLOAD_URL="https://github.com/rabbitmq/rabbitmq-server/releases/download/v$RABBITMQ_VERSION/rabbitmq-server-generic-unix-$RABBITMQ_VERSION.tar.xz"
- RABBITMQ_TAR="rabbitmq-$RABBITMQ_VERSION.tar.xz"

Expand Down
1 change: 1 addition & 0 deletions projects/Unit/Fixtures.cs
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,7 @@ public static string CertificatesDirectory()
public class TimingFixture
{
public static readonly TimeSpan TimingInterval = TimeSpan.FromMilliseconds(300);
public static readonly TimeSpan TimingInterval_2X = TimeSpan.FromMilliseconds(600);
public static readonly TimeSpan SafetyMargin = TimeSpan.FromMilliseconds(150);
public static readonly TimeSpan TestTimeout = TimeSpan.FromSeconds(5);
}
Expand Down
6 changes: 3 additions & 3 deletions projects/Unit/TestBlockingCell.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public void TestBackgroundUpdateSucceeds()
SetAfter(TimingInterval, k, 123);

ResetTimer();
int v = k.WaitForValue(TimingInterval * 2);
int v = k.WaitForValue(TimingInterval_2X);
Assert.Less(TimingInterval - SafetyMargin, ElapsedMs());
Assert.AreEqual(123, v);
}
Expand All @@ -152,7 +152,7 @@ public void TestBackgroundUpdateSucceedsWithTimeSpan()
SetAfter(TimingInterval, k, 123);

ResetTimer();
int v = k.WaitForValue(TimingInterval * 2);
int v = k.WaitForValue(TimingInterval_2X);
Assert.Less(TimingInterval - SafetyMargin, ElapsedMs());
Assert.AreEqual(123, v);
}
Expand All @@ -174,7 +174,7 @@ public void TestBackgroundUpdateSucceedsWithInfiniteTimeoutTimeSpan()
public void TestBackgroundUpdateFails()
{
var k = new BlockingCell<int>();
SetAfter(TimingInterval * 2, k, 123);
SetAfter(TimingInterval_2X, k, 123);

ResetTimer();
Assert.Throws<TimeoutException>(() => k.WaitForValue(TimingInterval));
Expand Down
22 changes: 11 additions & 11 deletions projects/Unit/TestSharedQueue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public TimeSpan ElapsedMs()
public void TestBgLong()
{
var q = new SharedQueue();
EnqueueAfter(TimingInterval*2, q, 123);
EnqueueAfter(TimingInterval_2X, q, 123);

ResetTimer();
bool r = q.Dequeue(TimingInterval, out object v);
Expand All @@ -147,7 +147,7 @@ public void TestBgShort()
EnqueueAfter(TimingInterval, q, 123);

ResetTimer();
bool r = q.Dequeue(TimingInterval * 2, out object v);
bool r = q.Dequeue(TimingInterval_2X, out object v);
Assert.Less(TimingInterval - SafetyMargin, ElapsedMs());
Assert.IsTrue(r);
Assert.AreEqual(123, v);
Expand Down Expand Up @@ -237,20 +237,20 @@ public void TestDoubleBg()
{
var q = new SharedQueue();
EnqueueAfter(TimingInterval, q, 123);
EnqueueAfter(TimingInterval*2, q, 234);
EnqueueAfter(TimingInterval_2X, q, 234);

ResetTimer();
bool r;

r = q.Dequeue(TimingInterval * 2, out object v);
r = q.Dequeue(TimingInterval_2X, out object v);
Assert.Less(TimingInterval - SafetyMargin, ElapsedMs());
Assert.Greater(TimingInterval + SafetyMargin, ElapsedMs());
Assert.IsTrue(r);
Assert.AreEqual(123, v);

r = q.Dequeue(TimingInterval * 2, out v);
Assert.Less(TimingInterval*2 - SafetyMargin, ElapsedMs());
Assert.Greater(TimingInterval*2 + SafetyMargin, ElapsedMs());
r = q.Dequeue(TimingInterval_2X, out v);
Assert.Less(TimingInterval_2X - SafetyMargin, ElapsedMs());
Assert.Greater(TimingInterval_2X + SafetyMargin, ElapsedMs());
Assert.IsTrue(r);
Assert.AreEqual(234, v);
}
Expand All @@ -259,7 +259,7 @@ public void TestDoubleBg()
public void TestDoublePoll()
{
var q = new SharedQueue();
EnqueueAfter(TimingInterval*2, q, 123);
EnqueueAfter(TimingInterval_2X, q, 123);

ResetTimer();
bool r;
Expand All @@ -270,9 +270,9 @@ public void TestDoublePoll()
Assert.IsTrue(!r);
Assert.AreEqual(null, v);

r = q.Dequeue(TimingInterval * 2, out v);
Assert.Less(TimingInterval*2 - SafetyMargin, ElapsedMs());
Assert.Greater(TimingInterval*2 + SafetyMargin, ElapsedMs());
r = q.Dequeue(TimingInterval_2X, out v);
Assert.Less(TimingInterval_2X - SafetyMargin, ElapsedMs());
Assert.Greater(TimingInterval_2X + SafetyMargin, ElapsedMs());
Assert.IsTrue(r);
Assert.AreEqual(123, v);
}
Expand Down
3 changes: 2 additions & 1 deletion projects/Unit/Unit.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFrameworks>net461;netcoreapp3.1</TargetFrameworks>
<AssemblyOriginatorKeyFile>../rabbit.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
Expand All @@ -13,6 +13,7 @@
<ItemGroup>
<PackageReference Include="ApprovalTests" Version="4.5.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" />
<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
<PackageReference Include="PublicApiGenerator" Version="10.0.2" />
Expand Down
2 changes: 1 addition & 1 deletion run-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ fi

cd "$script_dir"

dotnet test --no-build --logger 'console;verbosity=detailed' ./RabbitMQDotNetClient.sln < /dev/null
dotnet test --no-build --logger 'console;verbosity=detailed' --framework 'netcoreapp3.1' ./RabbitMQDotNetClient.sln < /dev/null

0 comments on commit f8409df

Please sign in to comment.