/usr/share/gocode/src/github.com/smartystreets/goconvey/web/server/contract/monitor.go is in golang-github-smartystreets-goconvey-dev 1.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package contract
import "log"
type Monitor struct {
scanner Scanner
watcher Watcher
executor Executor
server Server
sleep func()
}
func (self *Monitor) ScanForever() {
log.Println("Engaging monitoring loop...")
for {
self.Scan()
}
}
func (self *Monitor) Scan() {
if self.scanner.Scan() {
self.executeTests()
} else {
self.sleep()
}
}
func (self *Monitor) executeTests() {
watched := self.watcher.WatchedFolders()
log.Printf("Preparing for test run (watching %d folders)...\n", len(watched))
output := self.executor.ExecuteTests(watched)
log.Println("Test run complete, updating server with latest output...")
self.server.ReceiveUpdate(output)
log.Printf("Server updated with %d tested packages (revision: '%v').\n", len(output.Packages), output.Revision)
}
func NewMonitor(scanner Scanner, watcher Watcher, executor Executor, server Server, sleep func()) *Monitor {
self := &Monitor{}
self.scanner = scanner
self.watcher = watcher
self.executor = executor
self.server = server
self.sleep = sleep
return self
}
|