mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 12:30:32 +00:00
51 lines
No EOL
1.7 KiB
C#
51 lines
No EOL
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Cosmos.Hardware;
|
|
|
|
namespace Cosmos.TestKernelHelpers {
|
|
public static class TestReporter {
|
|
public enum CommandEnum : uint {
|
|
Unknown,
|
|
String = 1,
|
|
Initialized = 2,
|
|
TestRunCompleted = 3,
|
|
TestCompleted = 4
|
|
}
|
|
public static void Initialize() {
|
|
Serial.InitSerial(1);
|
|
WriteUIntToSerial((uint)CommandEnum.Initialized);
|
|
}
|
|
|
|
public static void TestsCompleted(){
|
|
WriteUIntToSerial((uint)CommandEnum.TestRunCompleted);
|
|
}
|
|
|
|
private static void WriteStringToSerial(string aString) {
|
|
WriteUIntToSerial((uint)aString.Length);
|
|
for (int i = 0; i < aString.Length; i++) {
|
|
Serial.WriteSerial(1, (byte)aString[i]); // Todo: unicode?
|
|
}
|
|
}
|
|
|
|
public static void WriteUIntToSerial(uint aValue) {
|
|
var xBytes = BitConverter.GetBytes(aValue);
|
|
for (int i = 0; i < xBytes.Length; i++) {
|
|
Serial.WriteSerial(1, xBytes[i]);
|
|
}
|
|
}
|
|
|
|
public static void WriteString(string aString) {
|
|
WriteUIntToSerial((uint)CommandEnum.String);
|
|
WriteStringToSerial(aString);
|
|
}
|
|
|
|
public static void WriteTestResult(string aTest, string aDescription, bool aPassed){
|
|
WriteUIntToSerial((uint)CommandEnum.TestCompleted);
|
|
WriteStringToSerial(aTest);
|
|
WriteStringToSerial(aDescription);
|
|
Serial.WriteSerial(1, (byte)(aPassed ? 1 : 0));
|
|
}
|
|
}
|
|
} |