func openDB() (t testDB, err error) { t.db, err = steward.OpenDatabase(db_path) if err != nil { return } err = steward.CleanDatabase(t.db) return }
func TestCleanDatabase(*testing.T) { db, err := openDB() if err != nil { log.Fatalln("Database open failed:", err) } err = steward.CleanDatabase(db.db) if err != nil { log.Fatalln("Clean database failed:", err) } defer db.Close() }
func reinitDatabase(db *sql.DB, config config.Config) { var err error if config.Database.SafeReinit { if time.Now().After(config.Pulse.Start.Time) { log.Fatalln("Reinit after start not allowed") } } log.Println("Reinit database") log.Println("Clean database") steward.CleanDatabase(db) for _, team := range config.Teams { log.Println("Add team", team.Name) _, err = steward.AddTeam(db, team) if err != nil { log.Fatalln("Add team failed:", err) } } for _, svc := range config.Services { var network string if svc.UDP { network = "udp" } else { network = "tcp" } log.Printf("Add service %s (%s)\n", svc.Name, network) err = steward.AddService(db, svc) if err != nil { log.Fatalln("Add service failed:", err) } } }
func TestParallelWebSocketConnect(*testing.T) { db, err := steward.OpenDatabase(db_path) if err != nil { log.Fatal(err) } db.SetMaxOpenConns(50) // default == 100 err = steward.CleanDatabase(db) if err != nil { log.Fatal(err) } addr := ":8080" attackFlow := make(chan scoreboard.Attack, 100) go func() { err := scoreboard.Scoreboard(db, attackFlow, wwwPath, addr, time.Second, time.Now(), time.Minute, time.Minute, time.Second) if err != nil { log.Fatal(err) } }() time.Sleep(time.Second) // wait scoreboard launching connects := 1000 log.Printf("%d parallel connects\n", connects) var wg sync.WaitGroup for i := 0; i < connects; i++ { wg.Add(1) go dialWebsocket(db, &wg, i) } wg.Wait() }