Skip to content

Commit

Permalink
appveyor build
Browse files Browse the repository at this point in the history
  • Loading branch information
arakis committed Nov 1, 2019
1 parent 9e043cd commit 147ace2
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 12 deletions.
9 changes: 7 additions & 2 deletions abctl
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

set -x

# abort on error
set -eE -o functrace
failure() {
Expand Down Expand Up @@ -212,7 +214,8 @@ function build {
;;

builder)
(cd src && ${msbuild} Abanu.Tools.sln /p:Configuration=Release /verbosity:minimal -m)
# mono: /verbosity:minimal
(cd src && ${msbuild} Abanu.Tools.sln /p:Configuration=Release -verbosity:minimal -m)
cp external/MOSA-Project/bin/Mosa.Plug.Korlib.dll bin
cp external/MOSA-Project/bin/Mosa.Plug.Korlib.x86.dll bin
cp external/MOSA-Project/bin/Mosa.Plug.Korlib.x64.dll bin
Expand All @@ -224,7 +227,8 @@ function build {
#(cd src && ${msbuild} Abanu.Kernel.sln /p:Configuration=Debug -verbosity:minimal -m)
set -x

(cd src && ${msbuild} Abanu.sln /p:Configuration=Debug /verbosity:minimal -m)
# mono: /verbosity:minimal
(cd src && ${msbuild} Abanu.sln /p:Configuration=Debug -verbosity:minimal -m)
;;

native)
Expand Down Expand Up @@ -583,6 +587,7 @@ function logs {
function _test {
case $1 in
cloud)
(cd bin && ${ABANU_BUILD} run --emulator=qemu --boot=direct --test)
echo Test finished
;;

Expand Down
2 changes: 1 addition & 1 deletion env/mswin
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ PATH=/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Professional/
PATH=/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Community/MSBuild/Current/Bin:$PATH
PATH=/mnt/d/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise/MSBuild/Current/Bin:$PATH
msbuild=MSBuild.exe
ABANU_BUILD="cmd.exe /C abanu.tools.build.exe"
ABANU_BUILD="cmd.exe /C Abanu.Tools.Build.exe"

QEMU_X86="cmd.exe /C ${ABANU_PROJDIR}\\external\\MOSA-Project\\Tools\\qemu\\qemu-system-i386.exe"
QEMU_X64="cmd.exe /C ${ABANU_PROJDIR}\\external\\MOSA-Project\\Tools\\qemu\\qemu-system-x86_64.exe"
Expand Down
3 changes: 3 additions & 0 deletions src/Abanu.Kernel.Config/KConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ public static class KConfig
/// </summary>
public const uint DefaultStackSize = 0x4000;

public const string SelfTestPassedMarker = "<SELFTEST:PASSED>";
public const string SelfTestFailedMarker = "<SELFTEST:FAILED>";

public static class Log
{

Expand Down
2 changes: 2 additions & 0 deletions src/Abanu.Kernel.Core/KernelStart.cs
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ public static unsafe void StartupStage2()
Scheduler.CreateThread(userProc, new ThreadStartOptions(Thread2) { AllowUserModeIOPort = true, DebugName = "UserThread2", Priority = -5 });
userProc.Start();

KernelMessage.WriteLine(KConfig.SelfTestPassedMarker);

var fileProc = ProcessManager.StartProcess("Service.Basic");
FileServ = fileProc.Service;

Expand Down
66 changes: 57 additions & 9 deletions src/Abanu.Tools.Build/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.Linq;
using System.Text;
using System.Threading;
using Abanu.Kernel.Core;
using Mosa.Compiler.MosaTypeSystem;

namespace Abanu.Tools.Build
Expand All @@ -22,9 +23,10 @@ private static void Main(string[] args)
if (args.Length == 0 && Debugger.IsAttached)
{
//Verb("build assembly");
Verb("build --native --bin=all");
Verb("build --image");
Verb("run --emulator=qemu --boot=direct");
//Verb("build --native --bin=all");
//Verb("build --image");
//Verb("run --emulator=qemu --boot=direct");
Verb("run --emulator=qemu --boot=direct --test");
}
else
{
Expand Down Expand Up @@ -151,15 +153,35 @@ private static CommandResult RunQemu(CommandArgs args)
switch (args.RequireFlag("boot", "direct"))
{
case "direct":
Exec("${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.Image.${ABANU_ARCH}.bin -serial file:${ABANU_LOGDIR}/kernel.log -d pcall,cpu_reset,guest_errors${DEBUG_INTERRUPTS} -D ${ABANU_LOGDIR}/emulator.log -m 256");
if (args.ContainsFlag("test"))
{
Exec(
"${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.Image.${ABANU_ARCH}.bin -serial stdio -m 256 -display none",
(line, proc) =>
{
if (line.Contains(KConfig.SelfTestPassedMarker))
{
proc.Kill();
Console.WriteLine("TEST PASSED");
Environment.Exit(0);
}
});

Console.WriteLine("Test FAILED");
Environment.Exit(1);
}
else
{
Exec("${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.Image.${ABANU_ARCH}.bin -serial file:${ABANU_LOGDIR}/kernel.log -d pcall,cpu_reset,guest_errors${DEBUG_INTERRUPTS} -D ${ABANU_LOGDIR}/emulator.log -m 256");
}
break;
}
return null;
}

private static ProcessResult Exec(CommandArgs args)
private static ProcessResult Exec(CommandArgs args, Action<string, Process> onNewLine = null)
{
using (var result = ExecAsync(args, true))
using (var result = ExecAsync(args, true, onNewLine))
{
result.WaitForExit();
result?.Dispose();
Expand All @@ -172,7 +194,7 @@ private static ProcessResult ExecAsync(CommandArgs args)
return ExecAsync(args, false);
}

private static ProcessResult ExecAsync(CommandArgs args, bool redirect)
private static ProcessResult ExecAsync(CommandArgs args, bool redirect, Action<string, Process> onNewLine = null)
{
if (!args.IsSet())
return null;
Expand All @@ -197,9 +219,35 @@ private static ProcessResult ExecAsync(CommandArgs args, bool redirect)
var proc = Process.Start(start);
if (redirect)
{
var data = proc.StandardOutput.ReadToEnd();

var th = new Thread(() =>
{
var buf = new char[1];
var sb = new StringBuilder();
while (true)
{
var count = proc.StandardOutput.Read(buf, 0, 1);
if (count == 0)
break;
Console.Write(buf[0]);
if (buf[0] == '\n')
{
var line = sb.ToString();
onNewLine?.Invoke(line, proc);
sb.Clear();
}
else
{
if (buf[0] != '\r')
sb.Append(buf[0]);
}
}
});
th.Start();

//var data = proc.StandardOutput.ReadToEnd();
var error = proc.StandardError.ReadToEnd();
Console.WriteLine(data);
//Console.WriteLine(data);
Console.WriteLine(error);
}

Expand Down

0 comments on commit 147ace2

Please sign in to comment.