Cosmos/source/Cosmos.TestKernelHelpers/TestReporter.cs
2008-12-30 10:07:25 +00:00

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));
}
}
}