@@ -65,7 +65,7 @@ func mustExec(t *testing.T, db *sql.DB, query string, args ...interface{}) (res
65
65
if len (query ) > 300 {
66
66
query = "[query too large to print]"
67
67
}
68
- t .Fatalf ("Error on Exec %q : %v" , query , err )
68
+ t .Fatalf ("Error on Exec %s : %v" , query , err )
69
69
}
70
70
return
71
71
}
@@ -76,7 +76,7 @@ func mustQuery(t *testing.T, db *sql.DB, query string, args ...interface{}) (row
76
76
if len (query ) > 300 {
77
77
query = "[query too large to print]"
78
78
}
79
- t .Fatalf ("Error on Query %q : %v" , query , err )
79
+ t .Fatalf ("Error on Query %s : %v" , query , err )
80
80
}
81
81
return
82
82
}
@@ -703,7 +703,7 @@ func TestLoadData(t *testing.T) {
703
703
704
704
// Local File
705
705
RegisterLocalFile (file .Name ())
706
- mustExec (t , db , "LOAD DATA LOCAL INFILE '" + file . Name () + " ' INTO TABLE test" )
706
+ mustExec (t , db , fmt . Sprintf ( "LOAD DATA LOCAL INFILE '%q ' INTO TABLE test" , file . Name ()) )
707
707
verifyLoadDataResult (t , db )
708
708
// negative test
709
709
_ , err = db .Exec ("LOAD DATA LOCAL INFILE 'doesnotexist' INTO TABLE test" )
@@ -970,39 +970,46 @@ func TestConcurrent(t *testing.T) {
970
970
t .Fatalf ("%v" , err )
971
971
}
972
972
973
- t .Logf ("Testing %d concurrent connections \r \n " , max )
973
+ t .Logf ("Testing up to %d concurrent connections \r \n " , max )
974
974
975
975
canStop := false
976
976
977
977
c := make (chan struct {}, max )
978
978
for i := 0 ; i < max ; i ++ {
979
- go func () {
979
+ go func (id int ) {
980
980
tx , err := db .Begin ()
981
981
if err != nil {
982
982
canStop = true
983
- t .Fatalf ("Error on Con %d: %s" , i , err .Error ())
983
+ if err .Error () == "Error 1040: Too many connections" {
984
+ max --
985
+ return
986
+ } else {
987
+ t .Fatalf ("Error on Con %d: %s" , id , err .Error ())
988
+ }
984
989
}
985
990
986
991
c <- struct {}{}
987
992
988
993
for ! canStop {
989
- _ , err : = tx .Exec ("SELECT 1" )
994
+ _ , err = tx .Exec ("SELECT 1" )
990
995
if err != nil {
991
996
canStop = true
992
- t .Fatalf ("Error on Con %d: %s" , i , err .Error ())
997
+ t .Fatalf ("Error on Con %d: %s" , id , err .Error ())
993
998
}
994
999
}
995
1000
996
1001
err = tx .Commit ()
997
1002
if err != nil {
998
1003
canStop = true
999
- t .Fatalf ("Error on Con %d: %s" , i , err .Error ())
1004
+ t .Fatalf ("Error on Con %d: %s" , id , err .Error ())
1000
1005
}
1001
- }()
1006
+ }(i )
1002
1007
}
1003
1008
1004
1009
for i := 0 ; i < max ; i ++ {
1005
1010
<- c
1006
1011
}
1007
1012
canStop = true
1013
+
1014
+ t .Logf ("Reached %d concurrent connections \r \n " , max )
1008
1015
}
0 commit comments