Merge branch 'master' of github.com:go-xorm/core

This commit is contained in:
Lunny Xiao 2017-12-21 09:38:49 +08:00
commit cb1d0ca71f
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
4 changed files with 19 additions and 17 deletions

View File

@ -12,3 +12,4 @@ test:
override: override:
# './...' is a relative pattern which means all subdirectories # './...' is a relative pattern which means all subdirectories
- go test -v -race - go test -v -race
- go test -v -race --dbtype=sqlite3

View File

@ -2,7 +2,7 @@ package core
import ( import (
"errors" "errors"
"fmt" "flag"
"os" "os"
"testing" "testing"
"time" "time"
@ -12,8 +12,7 @@ import (
) )
var ( var (
//dbtype string = "sqlite3" dbtype = flag.String("dbtype", "mysql", "database type")
dbtype string = "mysql"
createTableSql string createTableSql string
) )
@ -28,7 +27,8 @@ type User struct {
} }
func init() { func init() {
switch dbtype { flag.Parse()
switch *dbtype {
case "sqlite3": case "sqlite3":
createTableSql = "CREATE TABLE IF NOT EXISTS `user` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NULL, " + createTableSql = "CREATE TABLE IF NOT EXISTS `user` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NULL, " +
"`title` TEXT NULL, `age` FLOAT NULL, `alias` TEXT NULL, `nick_name` TEXT NULL, `created` datetime);" "`title` TEXT NULL, `age` FLOAT NULL, `alias` TEXT NULL, `nick_name` TEXT NULL, `created` datetime);"
@ -41,7 +41,7 @@ func init() {
} }
func testOpen() (*DB, error) { func testOpen() (*DB, error) {
switch dbtype { switch *dbtype {
case "sqlite3": case "sqlite3":
os.Remove("./test.db") os.Remove("./test.db")
return Open("sqlite3", "./test.db") return Open("sqlite3", "./test.db")
@ -133,7 +133,7 @@ func BenchmarkStructQuery(b *testing.B) {
b.Error(err) b.Error(err)
} }
if user.Name != "xlw" { if user.Name != "xlw" {
fmt.Println(user) b.Log(user)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }
} }
@ -179,7 +179,7 @@ func BenchmarkStruct2Query(b *testing.B) {
b.Error(err) b.Error(err)
} }
if user.Name != "xlw" { if user.Name != "xlw" {
fmt.Println(user) b.Log(user)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }
} }
@ -228,9 +228,8 @@ func BenchmarkSliceInterfaceQuery(b *testing.B) {
if err != nil { if err != nil {
b.Error(err) b.Error(err)
} }
fmt.Println(slice) b.Log(slice)
if *slice[1].(*string) != "xlw" { if *slice[1].(*string) != "xlw" {
fmt.Println(slice)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }
} }
@ -332,7 +331,7 @@ func BenchmarkSliceStringQuery(b *testing.B) {
b.Error(err) b.Error(err)
} }
if (*slice[1]) != "xlw" { if (*slice[1]) != "xlw" {
fmt.Println(slice) b.Log(slice)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }
} }
@ -378,7 +377,7 @@ func BenchmarkMapInterfaceQuery(b *testing.B) {
b.Error(err) b.Error(err)
} }
if m["name"].(string) != "xlw" { if m["name"].(string) != "xlw" {
fmt.Println(m) b.Log(m)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }
} }
@ -579,7 +578,7 @@ func TestExecMap(t *testing.T) {
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
fmt.Println("--", user) t.Log("--", user)
} }
} }
@ -621,7 +620,7 @@ func TestExecStruct(t *testing.T) {
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
fmt.Println("1--", user) t.Log("1--", user)
} }
} }

View File

@ -1,7 +1,6 @@
package core package core
import ( import (
"fmt"
"reflect" "reflect"
"testing" "testing"
) )
@ -12,14 +11,14 @@ func TestPK(t *testing.T) {
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
fmt.Println(str) t.Log(str)
s := &PK{} s := &PK{}
err = s.FromString(str) err = s.FromString(str)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
fmt.Println(s) t.Log(s)
if len(*p) != len(*s) { if len(*p) != len(*s) {
t.Fatal("p", *p, "should be equal", *s) t.Fatal("p", *p, "should be equal", *s)

View File

@ -44,6 +44,9 @@ func convertTime(dest *NullTime, src interface{}) error {
} }
*dest = NullTime(t) *dest = NullTime(t)
return nil return nil
case time.Time:
*dest = NullTime(s)
return nil
case nil: case nil:
default: default:
return fmt.Errorf("unsupported driver -> Scan pair: %T -> %T", src, dest) return fmt.Errorf("unsupported driver -> Scan pair: %T -> %T", src, dest)