| 22 | } |
| 23 | |
| 24 | func runAllDrivers() { |
| 25 | drivers := []string{"sqlite", "mysql", "postgres"} |
| 26 | _, currentFile, _, _ := runtime.Caller(0) |
| 27 | projectRoot := filepath.Dir(filepath.Dir(filepath.Dir(currentFile))) |
| 28 | |
| 29 | var failed []string |
| 30 | for _, driver := range drivers { |
| 31 | fmt.Printf("\n==================== %s ====================\n\n", driver) |
| 32 | |
| 33 | cmd := exec.Command("go", "test", "-v", "-count=1", "./store/test/...") |
| 34 | cmd.Dir = projectRoot |
| 35 | cmd.Env = append(os.Environ(), "DRIVER="+driver) |
| 36 | cmd.Stdout = os.Stdout |
| 37 | cmd.Stderr = os.Stderr |
| 38 | |
| 39 | if err := cmd.Run(); err != nil { |
| 40 | failed = append(failed, driver) |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | fmt.Println() |
| 45 | if len(failed) > 0 { |
| 46 | fmt.Printf("FAIL: %v\n", failed) |
| 47 | panic("some drivers failed") |
| 48 | } |
| 49 | fmt.Println("PASS: all drivers") |
| 50 | } |