zealot.help-lint: Add a help-lint for travisci that ignores a lot of flaky resource leaks.

Some work needs to be done with ensuring that resources are cleaned up before reporting resource leaks and exiting. In the meantime, we want TravisCI to be useful enough to catch help-lint errors, so ignore a bunch of errors that it might find. These leaks are still tested for in the more thorough mason CI.
clean-macosx-x86-64
Doug Coleman 2019-10-05 12:04:14 -05:00
parent abf36e89ae
commit 78c3a99a31
3 changed files with 32 additions and 1 deletions

View File

@ -72,5 +72,5 @@ script:
- "./factor -e='USING: memory vocabs.hierarchy ; \"zealot\" load save'" - "./factor -e='USING: memory vocabs.hierarchy ; \"zealot\" load save'"
- './factor -run=zealot.cli-changed-vocabs' - './factor -run=zealot.cli-changed-vocabs'
- './factor -run=tools.test `./factor -run=zealot.cli-changed-vocabs | paste -s -d " " -`' - './factor -run=tools.test `./factor -run=zealot.cli-changed-vocabs | paste -s -d " " -`'
- './factor -run=help.lint `./factor -run=zealot.cli-changed-vocabs | paste -s -d " " -`' - './factor -run=zealot.help-lint `./factor -run=zealot.cli-changed-vocabs | paste -s -d " " -`'
- "./factor -e='USING: modern.paths tools.test sequences system kernel math random ; core-vocabs os macosx? [ dup length 3 /i sample ] when [ test ] each'" - "./factor -e='USING: modern.paths tools.test sequences system kernel math random ; core-vocabs os macosx? [ dup length 3 /i sample ] when [ test ] each'"

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1,30 @@
! Copyright (C) 2019 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: assocs cache command-line help.lint io io.monitors kernel
namespaces prettyprint sequences system vocabs.hierarchy ;
IN: zealot.help-lint
! FIXME: help-lint sometimes lists monitors and event-streams as leaked.
! event-stream is macosx-only so hack it into a string
CONSTANT: ignored-resources {
"linux-monitor" "macosx-monitor" "malloc-ptr"
"epoll-mx" "server-port" "openssl-context"
"cache-assoc" "input-port" "fd" "output-port" "stdin"
"event-stream"
}
: filter-flaky-resources ( seq -- seq' )
[ drop unparse ignored-resources member? ] assoc-reject ;
! Allow testing without calling exit
: zealot-help-lint ( exit? -- )
command-line get [ load ] each
help-lint-all
lint-failures get filter-flaky-resources
[ nip assoc-empty? [ "==== FAILING LINT" print :lint-failures flush ] unless ]
[ swap [ 0 1 ? (exit) ] [ drop ] if ] 2bi ;
: zealot-help-lint-main ( -- )
t zealot-help-lint ;
MAIN: zealot-help-lint-main