urbit/.travis/test.ls

57 lines
1.3 KiB
Plaintext
Raw Normal View History

require! <[ stream-snitch once ]>
2017-12-01 08:25:19 +03:00
pty = require \pty.js
urbit =
2017-12-01 08:44:10 +03:00
# TODO abort on failure
pty.spawn 'urbit' <[-B urbit.pill -A .. -cFI zod zod]>
2017-12-01 08:25:19 +03:00
.on \data -> process.stdout.write it
console.log "FIXME Running Ubuntu 14.04, which causes a libtinfo version info warning. Should update to 16.04.\n"
2017-12-02 06:52:35 +03:00
urbit.on \exit (code)->
console.log "\nnode: urbit exited with code #code\n"
process.exit code
2017-12-02 06:20:24 +03:00
process.on \exit -> urbit.write '\04' # send EOF to gracefully checkpoint
2018-03-08 06:34:45 +03:00
exit-code = 0
on-next = (re,cb)->
urbit.pipe (new stream-snitch re).on \match once cb
2018-03-08 06:03:26 +03:00
on-next /\r\x1b\[K(\/~|ford: )/ ->
console.log "\n\n---\nnode: detected error, exiting in ~s30\n---\n\n"
2018-03-08 06:34:45 +03:00
exit-code := 1
2018-03-08 06:03:26 +03:00
set-timeout (-> process.exit 1), 30000
<- on-next /dojo> /
2018-03-08 03:49:33 +03:00
urbit.write "%got-dojo\r"
<- on-next /%got-dojo/
2018-03-08 03:49:33 +03:00
2018-03-08 06:19:42 +03:00
urbit.write "|start %test\r:test [%cores /]\r"
<- on-next /%cores-tested/
2018-03-08 06:34:45 +03:00
if exit-code
process.exit exit-code
2018-03-08 03:49:33 +03:00
urbit.write "+test, =defer |, =seed `@uvI`(shaz %reproducible)\r"
on-next /(FAILED|CRASHED)/ ->
console.log "\n\n---\nnode: detected error\n---\n\n"
exit-code := 2
urbit.write "%tested\r"
<- on-next /%tested/
2018-03-08 06:34:45 +03:00
if exit-code
process.exit exit-code
2018-03-08 03:49:33 +03:00
console.log "\n\n---\nnode: STUB insert further tests here\n---\n\n"
2018-03-08 06:19:42 +03:00
urbit.write '\04'
2018-03-08 03:49:33 +03:00
set-timeout (-> process.exit exit-code), 1000