@@ -65,7 +65,7 @@ func mustExec(t *testing.T, db *sql.DB, query string, args ...interface{}) (res
6565 if len (query ) > 300 {
6666 query = "[query too large to print]"
6767 }
68- t .Fatalf ("Error on Exec %q : %v" , query , err )
68+ t .Fatalf ("Error on Exec %s : %v" , query , err )
6969 }
7070 return
7171}
@@ -76,7 +76,7 @@ func mustQuery(t *testing.T, db *sql.DB, query string, args ...interface{}) (row
7676 if len (query ) > 300 {
7777 query = "[query too large to print]"
7878 }
79- t .Fatalf ("Error on Query %q : %v" , query , err )
79+ t .Fatalf ("Error on Query %s : %v" , query , err )
8080 }
8181 return
8282}
@@ -703,7 +703,7 @@ func TestLoadData(t *testing.T) {
703703
704704 // Local File
705705 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 ()) )
707707 verifyLoadDataResult (t , db )
708708 // negative test
709709 _ , err = db .Exec ("LOAD DATA LOCAL INFILE 'doesnotexist' INTO TABLE test" )
@@ -970,39 +970,46 @@ func TestConcurrent(t *testing.T) {
970970 t .Fatalf ("%v" , err )
971971 }
972972
973- t .Logf ("Testing %d concurrent connections \r \n " , max )
973+ t .Logf ("Testing up to %d concurrent connections \r \n " , max )
974974
975975 canStop := false
976976
977977 c := make (chan struct {}, max )
978978 for i := 0 ; i < max ; i ++ {
979- go func () {
979+ go func (id int ) {
980980 tx , err := db .Begin ()
981981 if err != nil {
982982 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+ }
984989 }
985990
986991 c <- struct {}{}
987992
988993 for ! canStop {
989- _ , err : = tx .Exec ("SELECT 1" )
994+ _ , err = tx .Exec ("SELECT 1" )
990995 if err != nil {
991996 canStop = true
992- t .Fatalf ("Error on Con %d: %s" , i , err .Error ())
997+ t .Fatalf ("Error on Con %d: %s" , id , err .Error ())
993998 }
994999 }
9951000
9961001 err = tx .Commit ()
9971002 if err != nil {
9981003 canStop = true
999- t .Fatalf ("Error on Con %d: %s" , i , err .Error ())
1004+ t .Fatalf ("Error on Con %d: %s" , id , err .Error ())
10001005 }
1001- }()
1006+ }(i )
10021007 }
10031008
10041009 for i := 0 ; i < max ; i ++ {
10051010 <- c
10061011 }
10071012 canStop = true
1013+
1014+ t .Logf ("Reached %d concurrent connections \r \n " , max )
10081015}
0 commit comments