(t *testing.T)
| 2065 | } |
| 2066 | |
| 2067 | func TestBeforeConnect(t *testing.T) { |
| 2068 | if !available { |
| 2069 | t.Skipf("MySQL server not running on %s", netAddr) |
| 2070 | } |
| 2071 | |
| 2072 | // dbname is set in the BeforeConnect handle |
| 2073 | cfg, err := ParseDSN(fmt.Sprintf("%s:%s@%s/%s?timeout=30s", user, pass, netAddr, "_")) |
| 2074 | if err != nil { |
| 2075 | t.Fatalf("error parsing DSN: %v", err) |
| 2076 | } |
| 2077 | |
| 2078 | cfg.Apply(BeforeConnect(func(ctx context.Context, c *Config) error { |
| 2079 | c.DBName = dbname |
| 2080 | return nil |
| 2081 | })) |
| 2082 | |
| 2083 | connector, err := NewConnector(cfg) |
| 2084 | if err != nil { |
| 2085 | t.Fatalf("error creating connector: %v", err) |
| 2086 | } |
| 2087 | |
| 2088 | db := sql.OpenDB(connector) |
| 2089 | defer db.Close() |
| 2090 | |
| 2091 | var connectedDb string |
| 2092 | err = db.QueryRow("SELECT DATABASE();").Scan(&connectedDb) |
| 2093 | if err != nil { |
| 2094 | t.Fatalf("error executing query: %v", err) |
| 2095 | } |
| 2096 | if connectedDb != dbname { |
| 2097 | t.Fatalf("expected to connect to DB %s, but connected to %s instead", dbname, connectedDb) |
| 2098 | } |
| 2099 | } |
| 2100 | |
| 2101 | func TestSQLInjection(t *testing.T) { |
| 2102 | createTest := func(arg string) func(dbt *DBTest) { |
nothing calls this directly
no test coverage detected