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
							parent
							
								
									abf36e89ae
								
							
						
					
					
						commit
						78c3a99a31
					
				| 
						 | 
				
			
			@ -72,5 +72,5 @@ script:
 | 
			
		|||
  - "./factor -e='USING: memory vocabs.hierarchy ; \"zealot\" load save'"
 | 
			
		||||
  - './factor -run=zealot.cli-changed-vocabs'
 | 
			
		||||
  - './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'"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Doug Coleman
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
		Loading…
	
		Reference in New Issue