mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-24 12:35:31 +00:00
Add NetworkTest
This commit is contained in:
parent
89c4fc2da3
commit
4872875f5b
4 changed files with 63 additions and 0 deletions
|
|
@ -29,6 +29,7 @@
|
||||||
<ProjectReference Include="..\Kernels\Cosmos.Kernel.Tests.Fat\Cosmos.Kernel.Tests.Fat.csproj" />
|
<ProjectReference Include="..\Kernels\Cosmos.Kernel.Tests.Fat\Cosmos.Kernel.Tests.Fat.csproj" />
|
||||||
<ProjectReference Include="..\Kernels\Cosmos.Kernel.Tests.IO\Cosmos.Kernel.Tests.IO.csproj" />
|
<ProjectReference Include="..\Kernels\Cosmos.Kernel.Tests.IO\Cosmos.Kernel.Tests.IO.csproj" />
|
||||||
<ProjectReference Include="..\Kernels\GraphicTest\GraphicTest.csproj" />
|
<ProjectReference Include="..\Kernels\GraphicTest\GraphicTest.csproj" />
|
||||||
|
<ProjectReference Include="..\Kernels\NetworkTest\NetworkTest.csproj" />
|
||||||
<ProjectReference Include="..\Kernels\ProcessorTests\ProcessorTests.csproj" />
|
<ProjectReference Include="..\Kernels\ProcessorTests\ProcessorTests.csproj" />
|
||||||
<ProjectReference Include="..\Kernels\MemoryOperationsTest\MemoryOperationsTest.csproj" />
|
<ProjectReference Include="..\Kernels\MemoryOperationsTest\MemoryOperationsTest.csproj" />
|
||||||
<ProjectReference Include="..\Kernels\SimpleStructsAndArraysTest\SimpleStructsAndArraysTest.csproj" />
|
<ProjectReference Include="..\Kernels\SimpleStructsAndArraysTest\SimpleStructsAndArraysTest.csproj" />
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ namespace Cosmos.TestRunner.Full
|
||||||
//yield return typeof(KernelGen3.Boot);
|
//yield return typeof(KernelGen3.Boot);
|
||||||
|
|
||||||
yield return typeof(GraphicTest.Kernel);
|
yield return typeof(GraphicTest.Kernel);
|
||||||
|
yield return typeof(NetworkTest.Kernel);
|
||||||
/* Please see the notes on the kernel itself before enabling it */
|
/* Please see the notes on the kernel itself before enabling it */
|
||||||
//yield return typeof(ConsoleTest.Kernel);
|
//yield return typeof(ConsoleTest.Kernel);
|
||||||
/* This is a bit slow and works only because ring check is disabled to decide if leave it enabled */
|
/* This is a bit slow and works only because ring check is disabled to decide if leave it enabled */
|
||||||
|
|
|
||||||
47
Tests/Kernels/NetworkTest/Kernel.cs
Normal file
47
Tests/Kernels/NetworkTest/Kernel.cs
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
using Cosmos.HAL;
|
||||||
|
using Cosmos.System.Network.Config;
|
||||||
|
using Cosmos.System.Network.IPv4;
|
||||||
|
using Cosmos.System.Network.IPv4.UDP;
|
||||||
|
using Cosmos.TestRunner;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using Sys = Cosmos.System;
|
||||||
|
|
||||||
|
namespace NetworkTest
|
||||||
|
{
|
||||||
|
public class Kernel : Sys.Kernel
|
||||||
|
{
|
||||||
|
protected override void BeforeRun()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Run()
|
||||||
|
{
|
||||||
|
/** IPConfig Enable test **/
|
||||||
|
mDebugger.Send($"Testing IPConfig.Enable");
|
||||||
|
//get nic by name
|
||||||
|
NetworkDevice nic = NetworkDevice.GetDeviceByName("eth0");
|
||||||
|
if (Equals(nic, null))
|
||||||
|
{
|
||||||
|
mDebugger.Send($"eth0 not found.");
|
||||||
|
TestController.Failed();
|
||||||
|
}
|
||||||
|
//Enable network config
|
||||||
|
IPConfig.Enable(nic, new Address(192, 168, 1, 69), new Address(255, 255, 255, 0), new Address(192, 168, 1, 254));
|
||||||
|
|
||||||
|
Address ip = new Address(192, 168, 1, 70);
|
||||||
|
int port = 4242;
|
||||||
|
string message = "Hello from Cosmos!";
|
||||||
|
|
||||||
|
/** Udp test **/
|
||||||
|
var xClient = new UdpClient(port);
|
||||||
|
xClient.Connect(ip, port);
|
||||||
|
xClient.Send(Encoding.ASCII.GetBytes(message));
|
||||||
|
mDebugger.Send("Sent UDP packet to " + ip.ToString() + ":" + port);
|
||||||
|
xClient.Close();
|
||||||
|
|
||||||
|
TestController.Completed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
Tests/Kernels/NetworkTest/NetworkTest.csproj
Normal file
14
Tests/Kernels/NetworkTest/NetworkTest.csproj
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\..\source\Cosmos.Debug.Kernel\Cosmos.Debug.Kernel.csproj" />
|
||||||
|
<ProjectReference Include="..\..\..\source\Cosmos.System2\Cosmos.System2.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Cosmos.TestRunner.TestController\Cosmos.TestRunner.TestController.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Loading…
Reference in a new issue