コード例 #1
0
ファイル: os-engine.js プロジェクト: cloudwork/narwhal
        communicate: function (input, output, errput) {

            if (typeof stdin == "string")
                stdin = new io.StringIO(input);
            else if (!stdin)
                stdin = new io.StringIO();

            if (typeof input == "string")
                input = new io.StringIO(input);
            else if (!input)
                input = new io.StringIO();
            if (!output)
                output = new io.StringIO();
            if (!errput)
                errput = new io.StringIO();

            var inThread = new JavaAdapter(Packages.java.lang.Thread, {
                "run": function () {
                    input.copy(stdin);
                    stdin.close();
                }
            });

            var outThread = new JavaAdapter(Packages.java.lang.Thread, {
                "run": function () {
                    stdout.copy(output);
                    stdout.close();
                }
            });

            var errThread = new JavaAdapter(Packages.java.lang.Thread, {
                "run": function () {
                    stderr.copy(errput);
                    stderr.close();
                }
            });

            inThread.setDaemon(true);
            inThread.start();
            errThread.setDaemon(true);
            errThread.start();
            outThread.setDaemon(true);
            outThread.start();

            inThread.join();
            outThread.join();
            errThread.join();

            var status = process.waitFor();
            stdin.close();
            stdout.close();
            stderr.close();

            return {
                status: status,
                stdin: input,
                stdout: output,
                stderr: errput
            };
        }
コード例 #2
0
exports.testStringIODelimiterForEach = function () {
    var stringio = new io.StringIO("a\0b\0", "\0");
    var acc = [];
    stringio.forEach(function (line) {
        acc.push(line);
    });
    assert.eq(["a", "b"], acc);
};
コード例 #3
0
ファイル: os-engine.js プロジェクト: cloudwork/narwhal
 "run": function () {
     input.copy(stdin);
     stdin.close();
 }
コード例 #4
0
exports.testStringIODelimiter = function () {
    var stringio = new io.StringIO("a\0b\0", "\0");
    assert.eq(["a\0", "b\0"], stringio.readLines());
};