aboutsummaryrefslogtreecommitdiff
path: root/t/release/Test/IRC/Server.pm6
diff options
context:
space:
mode:
Diffstat (limited to 't/release/Test/IRC/Server.pm6')
-rw-r--r--t/release/Test/IRC/Server.pm620
1 files changed, 20 insertions, 0 deletions
diff --git a/t/release/Test/IRC/Server.pm6 b/t/release/Test/IRC/Server.pm6
new file mode 100644
index 0000000..fed3d66
--- /dev/null
+++ b/t/release/Test/IRC/Server.pm6
@@ -0,0 +1,20 @@
+unit class Test::IRC::Server;
+
+use JSON::Fast;
+
+has $!port;
+has $!proc;
+has Promise $.promise;
+has @.out;
+
+submethod BUILD (:$!port = 5000, :$server = 't/release/servers/01-basic.pl') {
+ $!proc = Proc::Async.new: 'perl', $server, $!port;
+ $!proc.stdout.tap: {
+ %*ENV<IRC_CLIENT_DEBUG> and dd .lines;
+ @!out.append: |.linesĀ».&from-json
+ };
+ $!proc.stderr.tap: { warn $_ };
+ $!promise = $!proc.start;
+}
+
+method kill { $!proc.kill; }