rules.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package parser
  2. import "strings"
  3. func noGoFiles(line string) bool {
  4. return strings.HasPrefix(line, "can't load package: ") &&
  5. (strings.Contains(line, ": no buildable Go source files in ") || strings.Contains(line, ": no Go "))
  6. }
  7. func buildFailed(line string) bool {
  8. return strings.HasPrefix(line, "# ") ||
  9. strings.Contains(line, "cannot find package") ||
  10. (strings.HasPrefix(line, "can't load package: ") && !strings.Contains(line, ": no Go ")) ||
  11. (strings.Contains(line, ": found packages ") && strings.Contains(line, ".go) and ") && strings.Contains(line, ".go) in "))
  12. }
  13. func noTestFunctions(line string) bool {
  14. return line == "testing: warning: no tests to run"
  15. }
  16. func noTestFiles(line string) bool {
  17. return strings.HasPrefix(line, "?") && strings.Contains(line, "[no test files]")
  18. }
  19. func isNewTest(line string) bool {
  20. return strings.HasPrefix(line, "=== ")
  21. }
  22. func isTestResult(line string) bool {
  23. return strings.HasPrefix(line, "--- FAIL:") || strings.HasPrefix(line, "--- PASS:") || strings.HasPrefix(line, "--- SKIP:")
  24. }
  25. func isPackageReport(line string) bool {
  26. return (strings.HasPrefix(line, "FAIL") ||
  27. strings.HasPrefix(line, "exit status") ||
  28. strings.HasPrefix(line, "PASS") ||
  29. isCoverageSummary(line) ||
  30. packagePassed(line))
  31. }
  32. func packageFailed(line string) bool {
  33. return strings.HasPrefix(line, "FAIL\t")
  34. }
  35. func packagePassed(line string) bool {
  36. return strings.HasPrefix(line, "ok \t")
  37. }
  38. func isCoverageSummary(line string) bool {
  39. return strings.HasPrefix(line, "coverage: ") && strings.Contains(line, "% of statements")
  40. }