mirror of
https://github.com/RuoJi6/ARTEX.git
synced 2026-10-28 01:03:50 +08:00
ARTEX — AI 自主渗透测试系统(Go 后端 + Next.js 前端,单二进制内嵌)。 Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
31 lines
739 B
Go
31 lines
739 B
Go
package server
|
|
|
|
import (
|
|
"database/sql"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/Autumn-27/artex/db"
|
|
_ "github.com/jackc/pgx/v5/stdlib"
|
|
)
|
|
|
|
// TestMain acquires a PostgreSQL advisory lock (7337741002) for the entire
|
|
// server test suite so cross-package DELETE cleanup races with db/agent
|
|
// packages are avoided when running `go test ./...`.
|
|
func TestMain(m *testing.M) {
|
|
dsn, _, err := db.DSN()
|
|
if err != nil {
|
|
os.Exit(m.Run())
|
|
}
|
|
conn, err := sql.Open("pgx", dsn)
|
|
if err != nil || conn.Ping() != nil {
|
|
os.Exit(m.Run())
|
|
}
|
|
defer conn.Close()
|
|
if _, err := conn.Exec(`SELECT pg_advisory_lock(7337741002)`); err != nil {
|
|
os.Exit(m.Run())
|
|
}
|
|
defer conn.Exec(`SELECT pg_advisory_unlock(7337741002)`) //nolint:errcheck
|
|
os.Exit(m.Run())
|
|
}
|