diff options
Diffstat (limited to 'src/database/sql/convert_test.go')
| -rw-r--r-- | src/database/sql/convert_test.go | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/database/sql/convert_test.go b/src/database/sql/convert_test.go index 4dfab1f6be..853a12ce95 100644 --- a/src/database/sql/convert_test.go +++ b/src/database/sql/convert_test.go @@ -17,9 +17,11 @@ import ( var someTime = time.Unix(123, 0) var answer int64 = 42 -type userDefined float64 - -type userDefinedSlice []int +type ( + userDefined float64 + userDefinedSlice []int + userDefinedString string +) type conversionTest struct { s, d interface{} // source and destination @@ -39,6 +41,7 @@ type conversionTest struct { wantptr *int64 // if non-nil, *d's pointed value must be equal to *wantptr wantnil bool // if true, *d must be *int64(nil) wantusrdef userDefined + wantusrstr userDefinedString } // Target variables for scanning into. @@ -171,6 +174,7 @@ var conversionTests = []conversionTest{ {s: int64(123), d: new(userDefined), wantusrdef: 123}, {s: "1.5", d: new(userDefined), wantusrdef: 1.5}, {s: []byte{1, 2, 3}, d: new(userDefinedSlice), wanterr: `unsupported Scan, storing driver.Value type []uint8 into type *sql.userDefinedSlice`}, + {s: "str", d: new(userDefinedString), wantusrstr: "str"}, // Other errors {s: complex(1, 2), d: &scanstr, wanterr: `unsupported Scan, storing driver.Value type complex128 into type *string`}, @@ -260,6 +264,9 @@ func TestConversions(t *testing.T) { if ct.wantusrdef != 0 && ct.wantusrdef != *ct.d.(*userDefined) { errf("want userDefined %f, got %f", ct.wantusrdef, *ct.d.(*userDefined)) } + if len(ct.wantusrstr) != 0 && ct.wantusrstr != *ct.d.(*userDefinedString) { + errf("want userDefined %q, got %q", ct.wantusrstr, *ct.d.(*userDefinedString)) + } } } |
