test: more test cases

This commit is contained in:
a631807682 2022-10-19 20:23:58 +08:00
parent 4c5d727449
commit b9f50de675
No known key found for this signature in database
GPG Key ID: 137D1D75522168AB

View File

@ -4,6 +4,7 @@ import (
"context" "context"
"fmt" "fmt"
"math/rand" "math/rand"
"os"
"reflect" "reflect"
"strings" "strings"
"testing" "testing"
@ -12,6 +13,7 @@ import (
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema" "gorm.io/gorm/schema"
. "gorm.io/gorm/utils/tests" . "gorm.io/gorm/utils/tests"
) )
@ -934,13 +936,26 @@ func TestInvalidCachedPlanPrepareStmt(t *testing.T) {
if err != nil { if err != nil {
t.Errorf("Open err:%v", err) t.Errorf("Open err:%v", err)
} }
if debug := os.Getenv("DEBUG"); debug == "true" {
db.Logger = db.Logger.LogMode(logger.Info)
} else if debug == "false" {
db.Logger = db.Logger.LogMode(logger.Silent)
}
type Object1 struct{} type Object1 struct {
ID uint
}
type Object2 struct { type Object2 struct {
Field1 string ID uint
Field1 int `gorm:"type:int8"`
} }
type Object3 struct { type Object3 struct {
Field2 string ID uint
Field1 int `gorm:"type:int4"`
}
type Object4 struct {
ID uint
Field2 int
} }
db.Migrator().DropTable("objects") db.Migrator().DropTable("objects")
@ -948,16 +963,43 @@ func TestInvalidCachedPlanPrepareStmt(t *testing.T) {
if err != nil { if err != nil {
t.Errorf("AutoMigrate err:%v", err) t.Errorf("AutoMigrate err:%v", err)
} }
err = db.Table("objects").Create(&Object1{}).Error
if err != nil {
t.Errorf("create err:%v", err)
}
// AddColumn
err = db.Table("objects").AutoMigrate(&Object2{}) err = db.Table("objects").AutoMigrate(&Object2{})
if err != nil { if err != nil {
t.Errorf("AutoMigrate err:%v", err) t.Errorf("AutoMigrate err:%v", err)
} }
err = db.Table("objects").Take(&Object2{}).Error
if err != nil {
t.Errorf("take err:%v", err)
}
// AlterColumn
err = db.Table("objects").AutoMigrate(&Object3{}) err = db.Table("objects").AutoMigrate(&Object3{})
if err != nil { if err != nil {
t.Errorf("AutoMigrate err:%v", err) t.Errorf("AutoMigrate err:%v", err)
} }
err = db.Table("objects").Take(&Object3{}).Error
if err != nil {
t.Errorf("take err:%v", err)
}
// AddColumn
err = db.Table("objects").AutoMigrate(&Object4{})
if err != nil {
t.Errorf("AutoMigrate err:%v", err)
}
err = db.Table("objects").Take(&Object4{}).Error
if err != nil {
t.Errorf("take err:%v", err)
}
} }
func TestDifferentTypeWithoutDeclaredLength(t *testing.T) { func TestDifferentTypeWithoutDeclaredLength(t *testing.T) {