assert = require('assert');
child = require('child_process');

nodejs = process.execPath;

if (module.parent) {
  // signal we've been loaded as a module
  console.log('Loaded as a module, exiting with status code 42.');
  process.exit(42);
}

// assert that the result of the final expression is written to stdout
child.exec(nodejs + ' --eval "1337; 42"',
    function(err, stdout, stderr) {
      assert.equal(parseInt(stdout), 42);
    });

// assert that module loading works
child.exec(nodejs + ' --eval "require(\'' + __filename + '\')"',
    function(status, stdout, stderr) {
      assert.equal(status.code, 42);
    });

// module path resolve bug, regression test
child.exec(nodejs + ' --eval "require(\'./test/simple/test-cli-eval.js\')"',
    function(status, stdout, stderr) {
      assert.equal(status.code, 42);
    });