@@ -26,6 +26,11 @@ import (
2626)
2727
2828var (
29+ user string
30+ pass string
31+ prot string
32+ addr string
33+ dbname string
2934 dsn string
3035 netAddr string
3136 available bool
@@ -43,17 +48,18 @@ var (
4348
4449// See https://github.com/go-sql-driver/mysql/wiki/Testing
4550func init () {
51+ // get environment variables
4652 env := func (key , defaultValue string ) string {
4753 if value := os .Getenv (key ); value != "" {
4854 return value
4955 }
5056 return defaultValue
5157 }
52- user : = env ("MYSQL_TEST_USER" , "root" )
53- pass : = env ("MYSQL_TEST_PASS" , "" )
54- prot : = env ("MYSQL_TEST_PROT" , "tcp" )
55- addr : = env ("MYSQL_TEST_ADDR" , "localhost:3306" )
56- dbname : = env ("MYSQL_TEST_DBNAME" , "gotest" )
58+ user = env ("MYSQL_TEST_USER" , "root" )
59+ pass = env ("MYSQL_TEST_PASS" , "" )
60+ prot = env ("MYSQL_TEST_PROT" , "tcp" )
61+ addr = env ("MYSQL_TEST_ADDR" , "localhost:3306" )
62+ dbname = env ("MYSQL_TEST_DBNAME" , "gotest" )
5763 netAddr = fmt .Sprintf ("%s(%s)" , prot , addr )
5864 dsn = fmt .Sprintf ("%s:%s@%s/%s?timeout=30s&strict=true" , user , pass , netAddr , dbname )
5965 c , err := net .Dial (prot , addr )
@@ -1340,3 +1346,25 @@ func TestConcurrent(t *testing.T) {
13401346 dbt .Logf ("Reached %d concurrent connections\r \n " , succeeded )
13411347 })
13421348}
1349+
1350+ // Tests custom dial functions
1351+ func TestCustomDial (t * testing.T ) {
1352+ if ! available {
1353+ t .Skipf ("MySQL-Server not running on %s" , netAddr )
1354+ }
1355+
1356+ // our custom dial function which justs wraps net.Dial here
1357+ RegisterDial ("mydial" , func (addr string ) (net.Conn , error ) {
1358+ return net .Dial (prot , addr )
1359+ })
1360+
1361+ db , err := sql .Open ("mysql" , fmt .Sprintf ("%s:%s@mydial(%s)/%s?timeout=30s&strict=true" , user , pass , addr , dbname ))
1362+ if err != nil {
1363+ t .Fatalf ("Error connecting: %s" , err .Error ())
1364+ }
1365+ defer db .Close ()
1366+
1367+ if _ , err = db .Exec ("DO 1" ); err != nil {
1368+ t .Fatalf ("Connection failed: %s" , err .Error ())
1369+ }
1370+ }
0 commit comments