yavsc/test/yavscTests/NonRegression/NodeTests.cs

66 lines
2.2 KiB
C#
Raw Normal View History

2018-06-20 03:50:06 +02:00
using System;
using Xunit;
using System.IO;
using System.Diagnostics;
2018-07-20 02:27:53 +02:00
namespace test
2018-06-20 03:50:06 +02:00
{
2018-08-01 06:12:42 +02:00
/// <summary>
/// Since node isn't any requirement by here,
/// It may regress
/// </summary>
2021-04-05 00:11:54 +01:00
[Trait("regression", "allways")]
2018-08-01 06:12:42 +02:00
public class NodeTests
2018-06-20 03:50:06 +02:00
{
void TestNodeJsForAnsitohtml ()
{
2020-09-12 01:11:30 +01:00
var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html")
{
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true
};
var proc = Process.Start(procStart);
2018-06-20 03:50:06 +02:00
proc.StandardInput.WriteLine("\x001b[30mblack\x1b[37mwhite");
proc.StandardInput.Close();
while (!proc.StandardOutput.EndOfStream)
{
Console.Write(proc.StandardOutput.ReadToEnd());
}
}
void AnsiToHtml()
{
2020-09-12 01:11:30 +01:00
var procStart = new ProcessStartInfo("ls", "-l --color=always")
{
UseShellExecute = false,
RedirectStandardInput = false,
RedirectStandardOutput = true
};
2018-06-20 03:50:06 +02:00
var proc = Process.Start(procStart);
var encoded = GetStream(proc.StandardOutput);
var reader = new StreamReader(encoded);
var txt = reader.ReadToEnd();
2018-07-23 17:15:28 +02:00
2018-06-20 03:50:06 +02:00
Console.WriteLine(txt);
}
public static Stream GetStream(StreamReader reader)
{
2018-07-25 02:12:13 +02:00
var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html");
2018-06-20 03:50:06 +02:00
procStart.UseShellExecute = false;
procStart.RedirectStandardInput = true;
procStart.RedirectStandardOutput = true;
procStart.RedirectStandardError = true;
var mem = new MemoryStream();
StreamWriter writer = new StreamWriter(mem);
var proc = Process.Start(procStart);
var text = reader.ReadToEnd();
proc.StandardInput.WriteLine(text);
proc.StandardInput.Close();
return proc.StandardOutput.BaseStream;
}
}
}