shrub/.travis/test.js
2019-01-29 19:15:00 -05:00

57 lines
1.3 KiB
JavaScript

'use strict';
var fs = require('fs')
var runner = require('urbit-runner')
var Urbit = runner.Urbit;
var ERROR = runner.ERROR;
var actions = runner.actions
var hash = fs.readFileSync('./pin-arvo-commit.txt', 'utf-8').slice(0, 10)
var pill = 'https://bootstrap.urbit.org/git-' + hash + '.pill'
var args = ['-u', pill, '-cgPSF', 'zod', 'zod'];
var urbit = new Urbit(args);
// vere hangs (always?) with run in travis-ci with -P
// so we send ^Z if we hang for ~s30
function exit() {
setTimeout(function(){
urbit.pty.write('\x1a');
urbit.pty.on('exit', function(code, signal){
process.exit(0);
})
}, 30 * 1000);
return urbit.exit(0);
}
Promise.resolve(urbit)
// XX temporary
// send ctrl-x to select dojo
//
.then(function(){
return urbit.expect(/talk\[\] /)
.then(function() {
return urbit.pty.write("\x18")
})
.then(function() { return urbit })
})
.then(actions.safeBoot)
.then(actions.test)
.then(function(){
return urbit.line("|mass")
.then(function(){
return urbit.expectEcho("%ran-mass")
.then(function(){ return urbit.resetListeners(); })
})
})
.then(exit)
.catch(function(err){
// we still exit 0, Arvo errors are not our fault ...
return urbit.waitSilent()
.then(function(){
return urbit.warn("Arvo test aborted:", err);
})
.then(exit);
});