Пример #1
0
func openDB() (t testDB, err error) {

	t.db, err = steward.OpenDatabase(db_path)
	if err != nil {
		return
	}

	err = steward.CleanDatabase(t.db)

	return
}
Пример #2
0
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()
}
Пример #3
0
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)
		}
	}
}
Пример #4
0
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()
}