process.mixin(require("./common"));

var sub = path.join(fixturesDir, 'echo.js');

var gotHelloWorld = false;
var gotEcho = false;

var child = process.createChildProcess(process.argv[0], [sub]);

child.addListener("error", function (data){
  puts("parent stderr: " + data);
});

child.addListener("output", function (data){
  if (data) {
    puts('child said: ' + JSON.stringify(data));
    if (!gotHelloWorld) {
      assert.equal("hello world\r\n", data);
      gotHelloWorld = true;
      child.write('echo me\r\n');
    } else {
      assert.equal("echo me\r\n", data);
      gotEcho = true;
      child.close();
    }
  } else {
    puts('child end');
  }
});


process.addListener('exit', function () {
  assert.ok(gotHelloWorld);
  assert.ok(gotEcho);
});
