/
rules.go
45 lines (42 loc) · 1.6 KB
/
rules.go
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
package parser
import "strings"
func noGoFiles(line string) bool {
return strings.HasPrefix(line, "can't load package: ") &&
(strings.Contains(line, ": no buildable Go source files in ") ||
strings.Contains(line, ": no Go ") ||
strings.Contains(line, "cannot find module providing package"))
}
func buildFailed(line string) bool {
return strings.HasPrefix(line, "# ") ||
strings.Contains(line, "cannot find package") ||
(strings.HasPrefix(line, "can't load package: ") && !strings.Contains(line, ": no Go ")) ||
(strings.Contains(line, ": found packages ") && strings.Contains(line, ".go) and ") && strings.Contains(line, ".go) in "))
}
func noTestFunctions(line string) bool {
return line == "testing: warning: no tests to run"
}
func noTestFiles(line string) bool {
return strings.HasPrefix(line, "?") && strings.Contains(line, "[no test files]")
}
func isNewTest(line string) bool {
return strings.HasPrefix(line, "=== ")
}
func isTestResult(line string) bool {
return strings.HasPrefix(line, "--- FAIL:") || strings.HasPrefix(line, "--- PASS:") || strings.HasPrefix(line, "--- SKIP:")
}
func isPackageReport(line string) bool {
return (strings.HasPrefix(line, "FAIL") ||
strings.HasPrefix(line, "exit status") ||
strings.HasPrefix(line, "PASS") ||
isCoverageSummary(line) ||
packagePassed(line))
}
func packageFailed(line string) bool {
return strings.HasPrefix(line, "FAIL\t")
}
func packagePassed(line string) bool {
return strings.HasPrefix(line, "ok \t")
}
func isCoverageSummary(line string) bool {
return strings.HasPrefix(line, "coverage: ") && strings.Contains(line, "% of statements")
}