#!/usr/bin/env dub /+ dub.sdl: name "rockhopper-testing-script" dependency "rockhopper" path="." dependency "eventcore" version="~>0.9.29" +/ module testscript; // this script is used for testing rockhopper, and can either be ran with `./testscript.d`, or `dub testscript.d` import std.stdio; import std.datetime : dur, MonoTime; import rockhopper.core; import rockhopper.rhapi; import eventcore.core : eventDriver; import core.thread.osthread : Thread; mixin rhMain!({ import rockhopper.rhapi.file; import std.string : representation, assumeUTF; import std.socket : parseAddress; import eventcore.driver : ConnectStatus, IOStatus; auto p = Pipe.create(); auto wg = FWaitGroup(2); spawn({ p.readStream.rawRead(15).assumeUTF.writeln; // only reads 4 wg.done(); }); spawn({ sleep(dur!"msecs"(500)); p.writeStream.rawWrite("test".representation); wg.done(); }); wg.wait(); });