Browse Source

minor test fixes

Julien Schmidt 12 years ago
parent
commit
d4d4dabc01
1 changed files with 17 additions and 10 deletions
  1. 17 10
      driver_test.go

+ 17 - 10
driver_test.go

@@ -65,7 +65,7 @@ func mustExec(t *testing.T, db *sql.DB, query string, args ...interface{}) (res
 		if len(query) > 300 {
 			query = "[query too large to print]"
 		}
-		t.Fatalf("Error on Exec %q: %v", query, err)
+		t.Fatalf("Error on Exec %s: %v", query, err)
 	}
 	return
 }
@@ -76,7 +76,7 @@ func mustQuery(t *testing.T, db *sql.DB, query string, args ...interface{}) (row
 		if len(query) > 300 {
 			query = "[query too large to print]"
 		}
-		t.Fatalf("Error on Query %q: %v", query, err)
+		t.Fatalf("Error on Query %s: %v", query, err)
 	}
 	return
 }
@@ -703,7 +703,7 @@ func TestLoadData(t *testing.T) {
 
 	// Local File
 	RegisterLocalFile(file.Name())
-	mustExec(t, db, "LOAD DATA LOCAL INFILE '"+file.Name()+"' INTO TABLE test")
+	mustExec(t, db, fmt.Sprintf("LOAD DATA LOCAL INFILE '%q' INTO TABLE test", file.Name()))
 	verifyLoadDataResult(t, db)
 	// negative test
 	_, err = db.Exec("LOAD DATA LOCAL INFILE 'doesnotexist' INTO TABLE test")
@@ -970,39 +970,46 @@ func TestConcurrent(t *testing.T) {
 		t.Fatalf("%v", err)
 	}
 
-	t.Logf("Testing %d concurrent connections \r\n", max)
+	t.Logf("Testing up to %d concurrent connections \r\n", max)
 
 	canStop := false
 
 	c := make(chan struct{}, max)
 	for i := 0; i < max; i++ {
-		go func() {
+		go func(id int) {
 			tx, err := db.Begin()
 			if err != nil {
 				canStop = true
-				t.Fatalf("Error on Con %d: %s", i, err.Error())
+				if err.Error() == "Error 1040: Too many connections" {
+					max--
+					return
+				} else {
+					t.Fatalf("Error on Con %d: %s", id, err.Error())
+				}
 			}
 
 			c <- struct{}{}
 
 			for !canStop {
-				_, err := tx.Exec("SELECT 1")
+				_, err = tx.Exec("SELECT 1")
 				if err != nil {
 					canStop = true
-					t.Fatalf("Error on Con %d: %s", i, err.Error())
+					t.Fatalf("Error on Con %d: %s", id, err.Error())
 				}
 			}
 
 			err = tx.Commit()
 			if err != nil {
 				canStop = true
-				t.Fatalf("Error on Con %d: %s", i, err.Error())
+				t.Fatalf("Error on Con %d: %s", id, err.Error())
 			}
-		}()
+		}(i)
 	}
 
 	for i := 0; i < max; i++ {
 		<-c
 	}
 	canStop = true
+
+	t.Logf("Reached %d concurrent connections \r\n", max)
 }