cs-codex-dist-tests/Tests/CodexTests/UtilityTests/NetworkIsolationTest.cs

48 lines
1.4 KiB
C#
Raw Normal View History

2023-09-12 13:43:30 +00:00
using CodexPlugin;
using DistTestCore;
using NUnit.Framework;
using Utils;
2024-05-07 07:49:00 +00:00
namespace CodexTests.UtilityTests
2023-09-12 13:43:30 +00:00
{
// Warning!
// This is a test to check network-isolation in the test-infrastructure.
// It requires parallelism(2) or greater to run.
[TestFixture]
[Ignore("Disabled until a solution is implemented.")]
public class NetworkIsolationTest : DistTest
{
2023-09-19 09:51:59 +00:00
private ICodexNode? node = null;
2023-09-12 13:43:30 +00:00
[Test]
public void SetUpANodeAndWait()
{
2023-09-20 10:02:32 +00:00
node = Ci.StartCodexNode();
2023-09-12 13:43:30 +00:00
2024-04-14 07:17:25 +00:00
Time.WaitUntil(() => node == null, TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5), nameof(SetUpANodeAndWait));
2023-09-12 13:43:30 +00:00
}
[Test]
public void ForeignNodeConnects()
{
2023-09-20 10:02:32 +00:00
var myNode = Ci.StartCodexNode();
2023-09-12 13:43:30 +00:00
2024-04-14 07:17:25 +00:00
Time.WaitUntil(() => node != null, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(5), nameof(ForeignNodeConnects));
2023-09-12 13:43:30 +00:00
try
{
myNode.ConnectToPeer(node!);
}
catch
{
// Good! This connection should be prohibited by the network isolation policy.
node = null;
return;
}
Assert.Fail("Connection could be established between two Codex nodes running in different namespaces. " +
"This may cause cross-test interference. Network isolation policy should be applied. Test infra failure.");
}
}
}