@@ -3,7 +3,6 @@ package zipkinsql
33import (
44 "context"
55 "database/sql"
6- "fmt"
76 "testing"
87
98 _ "github.com/mattn/go-sqlite3"
@@ -41,7 +40,7 @@ func TestQuerySuccess(t *testing.T) {
4140 for _ , c := range testCases {
4241 db , _ , recorder := createDB (t , c .opts ... )
4342
44- rows , err := db .Query ("SELECT 1" )
43+ rows , err := db .Query ("SELECT 1 WHERE 1 = ?" , 1 )
4544 if err != nil {
4645 t .Fatalf ("unexpected error: %s" , err .Error ())
4746 }
@@ -66,6 +65,10 @@ func TestQuerySuccess(t *testing.T) {
6665 if want , have := "sql/query" , spans [0 ].Name ; want != have {
6766 t .Fatalf ("unexpected span name, want: %s, have: %s" , want , have )
6867 }
68+
69+ if errMsg , ok := spans [0 ].Tags ["error" ]; ok {
70+ t .Fatalf ("unexpected error: %s" , errMsg )
71+ }
6972 }
7073
7174 db .Close ()
@@ -81,7 +84,7 @@ func TestQueryContextSuccess(t *testing.T) {
8184 for _ , c := range testCases {
8285 db , _ , recorder := createDB (t , c .opts ... )
8386
84- rows , err := db .QueryContext (ctx , "SELECT 1" )
87+ rows , err := db .QueryContext (ctx , "SELECT 1 WHERE 1 = ?" , 1 )
8588 if err != nil {
8689 t .Fatalf ("unexpected error: %s" , err .Error ())
8790 }
@@ -106,6 +109,10 @@ func TestQueryContextSuccess(t *testing.T) {
106109 if want , have := "sql/query" , spans [0 ].Name ; want != have {
107110 t .Fatalf ("unexpected span name, want: %s, have: %s" , want , have )
108111 }
112+
113+ if errMsg , ok := spans [0 ].Tags ["error" ]; ok {
114+ t .Fatalf ("unexpected error: %s" , errMsg )
115+ }
109116 }
110117
111118 db .Close ()
@@ -119,7 +126,7 @@ func TestQueryContextPropagationSuccess(t *testing.T) {
119126
120127 span , ctx := tracer .StartSpanFromContext (ctx , "root" )
121128
122- rows , err := db .QueryContext (ctx , "SELECT 1" )
129+ rows , err := db .QueryContext (ctx , "SELECT 1 WHERE 1 = ?" , 1 )
123130 if err != nil {
124131 t .Fatalf ("unexpected error: %s" , err .Error ())
125132 }
@@ -146,6 +153,10 @@ func TestQueryContextPropagationSuccess(t *testing.T) {
146153 t .Fatalf ("unexpected span name, want: %s, have: %s" , want , have )
147154 }
148155
156+ if errMsg , ok := spans [0 ].Tags ["error" ]; ok {
157+ t .Fatalf ("unexpected error: %s" , errMsg )
158+ }
159+
149160 db .Close ()
150161 recorder .Close ()
151162}
@@ -164,6 +175,7 @@ func TestExecContextSuccess(t *testing.T) {
164175 db , _ , recorder := createDB (t , c .opts ... )
165176
166177 sqlStmt := `
178+ drop table if exists foo;
167179 create table foo (id integer not null primary key, name text);
168180 delete from foo;
169181 `
@@ -192,6 +204,10 @@ func TestExecContextSuccess(t *testing.T) {
192204 if want , have := "sql/exec" , spans [0 ].Name ; want != have {
193205 t .Fatalf ("unexpected span name, want: %s, have: %s" , want , have )
194206 }
207+
208+ if errMsg , ok := spans [0 ].Tags ["error" ]; ok {
209+ t .Fatalf ("unexpected error: %s" , errMsg )
210+ }
195211 }
196212
197213 db .Close ()
@@ -204,13 +220,14 @@ func TestTxWithCommitSuccess(t *testing.T) {
204220
205221 testCases := []testCase {
206222 {[]TraceOption {WithAllowRootSpan (false )}, 0 },
207- {[]TraceOption {WithAllowRootSpan (true )}, 3 },
223+ {[]TraceOption {WithAllowRootSpan (true )}, 5 },
208224 }
209225
210226 for _ , c := range testCases {
211227 db , _ , recorder := createDB (t , c .opts ... )
212228
213229 sqlStmt := `
230+ drop table if exists foo;
214231 create table foo (id integer not null primary key, name text);
215232 delete from foo;
216233`
@@ -229,11 +246,9 @@ func TestTxWithCommitSuccess(t *testing.T) {
229246 t .Fatalf ("unexpected error: %s" , err .Error ())
230247 }
231248 defer stmt .Close ()
232- for i := 0 ; i < 100 ; i ++ {
233- _ , err = stmt .Exec (i , fmt .Sprintf ("こんにちわ世界%03d" , i ))
234- if err != nil {
235- t .Fatalf ("unexpected error: %s" , err .Error ())
236- }
249+ _ , err = stmt .Exec ("1" , "こんにちわ世界" )
250+ if err != nil {
251+ t .Fatalf ("unexpected error: %s" , err .Error ())
237252 }
238253 tx .Commit ()
239254
@@ -247,12 +262,25 @@ func TestTxWithCommitSuccess(t *testing.T) {
247262 t .Fatalf ("unexpected first span name, want: %s, have: %s" , want , have )
248263 }
249264 if want , have := "sql/begin_transaction" , spans [1 ].Name ; want != have {
250- t .Fatalf ("unexpected first span name, want: %s, have: %s" , want , have )
251- }
252- if want , have := "sql/commit" , spans [2 ].Name ; want != have {
253265 t .Fatalf ("unexpected second span name, want: %s, have: %s" , want , have )
254266 }
267+ if want , have := "sql/prepare" , spans [2 ].Name ; want != have {
268+ t .Fatalf ("unexpected third span name, want: %s, have: %s" , want , have )
269+ }
270+ if want , have := "sql/exec" , spans [3 ].Name ; want != have {
271+ t .Fatalf ("unexpected fourth span name, want: %s, have: %s" , want , have )
272+ }
273+ if want , have := "sql/commit" , spans [4 ].Name ; want != have {
274+ t .Fatalf ("unexpected fifth span name, want: %s, have: %s" , want , have )
275+ }
276+
277+ for i := 0 ; i < 5 ; i ++ {
278+ if errMsg , ok := spans [i ].Tags ["error" ]; ok {
279+ t .Fatalf ("unexpected error: %s" , errMsg )
280+ }
281+ }
255282 }
283+
256284 db .Close ()
257285 recorder .Close ()
258286 }
@@ -263,13 +291,14 @@ func TestTxWithRollbackSuccess(t *testing.T) {
263291
264292 testCases := []testCase {
265293 {[]TraceOption {WithAllowRootSpan (false )}, 0 },
266- {[]TraceOption {WithAllowRootSpan (true )}, 3 },
294+ {[]TraceOption {WithAllowRootSpan (true )}, 5 },
267295 }
268296
269297 for _ , c := range testCases {
270298 db , _ , recorder := createDB (t , c .opts ... )
271299
272300 sqlStmt := `
301+ drop table if exists foo;
273302 create table foo (id integer not null primary key, name text);
274303 delete from foo;
275304`
@@ -288,12 +317,7 @@ func TestTxWithRollbackSuccess(t *testing.T) {
288317 t .Fatalf ("unexpected error: %s" , err .Error ())
289318 }
290319 defer stmt .Close ()
291- for i := 0 ; i < 100 ; i ++ {
292- _ , err = stmt .Exec (i , fmt .Sprintf ("こんにちわ世界%03d" , i ))
293- if err != nil {
294- t .Fatalf ("unexpected error: %s" , err .Error ())
295- }
296- }
320+ _ , err = stmt .Exec ("1" , "こんにちわ世界" )
297321 tx .Rollback ()
298322
299323 spans := recorder .Flush ()
@@ -306,12 +330,25 @@ func TestTxWithRollbackSuccess(t *testing.T) {
306330 t .Fatalf ("unexpected first span name, want: %s, have: %s" , want , have )
307331 }
308332 if want , have := "sql/begin_transaction" , spans [1 ].Name ; want != have {
309- t .Fatalf ("unexpected first span name, want: %s, have: %s" , want , have )
310- }
311- if want , have := "sql/rollback" , spans [2 ].Name ; want != have {
312333 t .Fatalf ("unexpected second span name, want: %s, have: %s" , want , have )
313334 }
335+ if want , have := "sql/prepare" , spans [2 ].Name ; want != have {
336+ t .Fatalf ("unexpected third span name, want: %s, have: %s" , want , have )
337+ }
338+ if want , have := "sql/exec" , spans [3 ].Name ; want != have {
339+ t .Fatalf ("unexpected fourth span name, want: %s, have: %s" , want , have )
340+ }
341+ if want , have := "sql/rollback" , spans [4 ].Name ; want != have {
342+ t .Fatalf ("unexpected fifth span name, want: %s, have: %s" , want , have )
343+ }
344+
345+ for i := 0 ; i < c .expectedSpans ; i ++ {
346+ if errMsg , ok := spans [i ].Tags ["error" ]; ok {
347+ t .Fatalf ("unexpected error: %s" , errMsg )
348+ }
349+ }
314350 }
351+
315352 db .Close ()
316353 recorder .Close ()
317354 }
0 commit comments