@@ -42,6 +42,55 @@ func init() {
4242 }
4343}
4444
45+ type DBTest struct {
46+ * testing.T
47+ db * sql.DB
48+ }
49+
50+ func runTests (t * testing.T , name , dsn string , tests ... func (dbt * DBTest )) {
51+ if ! available {
52+ t .Logf ("MySQL-Server not running on %s. Skipping %s" , netAddr , name )
53+ return
54+ }
55+
56+ db , err := sql .Open ("mysql" , dsn )
57+ if err != nil {
58+ t .Fatalf ("Error connecting: %v" , err )
59+ }
60+ defer db .Close ()
61+
62+ db .Exec ("DROP TABLE IF EXISTS test" )
63+
64+ dbt := & DBTest {t , db }
65+ for _ , test := range tests {
66+ test (dbt )
67+ dbt .db .Exec ("DROP TABLE IF EXISTS test" )
68+ }
69+ }
70+
71+ func (dbt * DBTest ) fail (method , query string , err error ) {
72+ if len (query ) > 300 {
73+ query = "[query too large to print]"
74+ }
75+ dbt .Fatalf ("Error on %s %s: %v" , method , query , err )
76+ }
77+
78+ func (dbt * DBTest ) mustExec (query string , args ... interface {}) (res sql.Result ) {
79+ res , err := dbt .db .Exec (query , args ... )
80+ if err != nil {
81+ dbt .fail ("Exec" , query , err )
82+ }
83+ return res
84+ }
85+
86+ func (dbt * DBTest ) mustQuery (query string , args ... interface {}) (rows * sql.Rows ) {
87+ rows , err := dbt .db .Query (query , args ... )
88+ if err != nil {
89+ dbt .fail ("Query" , query , err )
90+ }
91+ return rows
92+ }
93+
4594func TestCharset (t * testing.T ) {
4695 mustSetCharset := func (charsetParam , expected string ) {
4796 db , err := sql .Open ("mysql" , strings .Replace (dsn , charset , charsetParam , 1 ))
@@ -101,55 +150,6 @@ func TestFailingCharset(t *testing.T) {
101150 }
102151}
103152
104- type DBTest struct {
105- * testing.T
106- db * sql.DB
107- }
108-
109- func runTests (t * testing.T , name , dsn string , tests ... func (dbt * DBTest )) {
110- if ! available {
111- t .Logf ("MySQL-Server not running on %s. Skipping %s" , netAddr , name )
112- return
113- }
114-
115- db , err := sql .Open ("mysql" , dsn )
116- if err != nil {
117- t .Fatalf ("Error connecting: %v" , err )
118- }
119- defer db .Close ()
120-
121- db .Exec ("DROP TABLE IF EXISTS test" )
122-
123- dbt := & DBTest {t , db }
124- for _ , test := range tests {
125- test (dbt )
126- dbt .db .Exec ("DROP TABLE IF EXISTS test" )
127- }
128- }
129-
130- func (dbt * DBTest ) fail (method , query string , err error ) {
131- if len (query ) > 300 {
132- query = "[query too large to print]"
133- }
134- dbt .Fatalf ("Error on %s %s: %v" , method , query , err )
135- }
136-
137- func (dbt * DBTest ) mustExec (query string , args ... interface {}) (res sql.Result ) {
138- res , err := dbt .db .Exec (query , args ... )
139- if err != nil {
140- dbt .fail ("Exec" , query , err )
141- }
142- return res
143- }
144-
145- func (dbt * DBTest ) mustQuery (query string , args ... interface {}) (rows * sql.Rows ) {
146- rows , err := dbt .db .Query (query , args ... )
147- if err != nil {
148- dbt .fail ("Query" , query , err )
149- }
150- return rows
151- }
152-
153153func TestRawBytesResultExceedsBuffer (t * testing.T ) {
154154 runTests (t , "TestRawBytesResultExceedsBuffer" , dsn , func (dbt * DBTest ) {
155155 // defaultBufSize from buffer.go
0 commit comments