add benchmark tests
This commit is contained in:
parent
f0ae4ff860
commit
81a4c102b9
|
@ -0,0 +1 @@
|
||||||
|
go test -v -bench=. -run=XXX
|
|
@ -1,180 +1,174 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
type BigStruct struct {
|
type BigStruct struct {
|
||||||
Id int64
|
Id int64
|
||||||
Name string
|
Name string
|
||||||
Title string
|
Title string
|
||||||
Age string
|
Age string
|
||||||
Alias string
|
Alias string
|
||||||
NickName string
|
NickName string
|
||||||
}
|
}
|
||||||
|
|
||||||
func doBenchDriverInsert(engine *Engine, db *sql.DB, b *testing.B) {
|
func doBenchDriverInsert(db *sql.DB, b *testing.B) {
|
||||||
b.StopTimer()
|
b.StartTimer()
|
||||||
err := engine.CreateTables(&BigStruct{})
|
for i := 0; i < b.N; i++ {
|
||||||
if err != nil {
|
_, err := db.Exec(`insert into big_struct (name, title, age, alias, nick_name)
|
||||||
b.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
doBenchDriverInsertS(db, b)
|
|
||||||
|
|
||||||
err = engine.DropTables(&BigStruct{})
|
|
||||||
if err != nil {
|
|
||||||
b.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func doBenchDriverInsertS(db *sql.DB, b *testing.B) {
|
|
||||||
b.StartTimer()
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
_, err := db.Exec(`insert into big_struct (name, title, age, alias, nick_name)
|
|
||||||
values ('fafdasf', 'fadfa', 'afadfsaf', 'fadfafdsafd', 'fadfafdsaf')`)
|
values ('fafdasf', 'fadfa', 'afadfsaf', 'fadfafdsafd', 'fadfafdsaf')`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
}
|
}
|
||||||
|
|
||||||
func doBenchDriverFind(engine *Engine, db *sql.DB, b *testing.B) {
|
func doBenchDriverFind(db *sql.DB, b *testing.B) {
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
err := engine.CreateTables(&BigStruct{})
|
for i := 0; i < 50; i++ {
|
||||||
if err != nil {
|
_, err := db.Exec(`insert into big_struct (name, title, age, alias, nick_name)
|
||||||
b.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
doBenchDriverFindS(db, b)
|
|
||||||
|
|
||||||
err = engine.DropTables(&BigStruct{})
|
|
||||||
if err != nil {
|
|
||||||
b.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func doBenchDriverFindS(db *sql.DB, b *testing.B) {
|
|
||||||
b.StopTimer()
|
|
||||||
for i := 0; i < 100; i++ {
|
|
||||||
_, err := db.Exec(`insert into big_struct (name, title, age, alias, nick_name)
|
|
||||||
values ('fafdasf', 'fadfa', 'afadfsaf', 'fadfafdsafd', 'fadfafdsaf')`)
|
values ('fafdasf', 'fadfa', 'afadfsaf', 'fadfafdsafd', 'fadfafdsaf')`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N/50; i++ {
|
||||||
_, err := db.Query("select * from big_struct limit 50")
|
rows, err := db.Query("select * from big_struct limit 50")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
for rows.Next() {
|
||||||
b.StopTimer()
|
s := &BigStruct{}
|
||||||
|
rows.Scan(&s.Id, &s.Name, &s.Title, &s.Age, &s.Alias, &s.NickName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.StopTimer()
|
||||||
|
}
|
||||||
|
|
||||||
|
func doBenchDriver(newdriver func() (*sql.DB, error), createTableSql,
|
||||||
|
dropTableSql string, opFunc func(*sql.DB, *testing.B), t *testing.B) {
|
||||||
|
db, err := newdriver()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
_, err = db.Exec(createTableSql)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
opFunc(db, t)
|
||||||
|
|
||||||
|
_, err = db.Exec(dropTableSql)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func doBenchInsert(engine *Engine, b *testing.B) {
|
func doBenchInsert(engine *Engine, b *testing.B) {
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
||||||
err := engine.CreateTables(bs)
|
err := engine.CreateTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
bs.Id = 0
|
bs.Id = 0
|
||||||
_, err = engine.Insert(bs)
|
_, err = engine.Insert(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
err = engine.DropTables(bs)
|
err = engine.DropTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func doBenchFind(engine *Engine, b *testing.B) {
|
func doBenchFind(engine *Engine, b *testing.B) {
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
||||||
err := engine.CreateTables(bs)
|
err := engine.CreateTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
bs.Id = 0
|
bs.Id = 0
|
||||||
_, err = engine.Insert(bs)
|
_, err = engine.Insert(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N/50; i++ {
|
||||||
bss := new([]BigStruct)
|
bss := new([]BigStruct)
|
||||||
err = engine.Limit(50).Find(bss)
|
err = engine.Limit(50).Find(bss)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
err = engine.DropTables(bs)
|
err = engine.DropTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func doBenchFindPtr(engine *Engine, b *testing.B) {
|
func doBenchFindPtr(engine *Engine, b *testing.B) {
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
bs := &BigStruct{0, "fafdasf", "fadfa", "afadfsaf", "fadfafdsafd", "fadfafdsaf"}
|
||||||
err := engine.CreateTables(bs)
|
err := engine.CreateTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
bs.Id = 0
|
bs.Id = 0
|
||||||
_, err = engine.Insert(bs)
|
_, err = engine.Insert(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N/50; i++ {
|
||||||
bss := new([]*BigStruct)
|
bss := new([]*BigStruct)
|
||||||
err = engine.Limit(50).Find(bss)
|
err = engine.Limit(50).Find(bss)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
err = engine.DropTables(bs)
|
err = engine.DropTables(bs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Error(err)
|
b.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
218
mymysql_test.go
218
mymysql_test.go
|
@ -1,8 +1,10 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
_ "github.com/ziutek/mymysql/godrv"
|
"database/sql"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
_ "github.com/ziutek/mymysql/godrv"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -13,145 +15,153 @@ utf8 COLLATE utf8_general_ci;
|
||||||
var showTestSql bool = true
|
var showTestSql bool = true
|
||||||
|
|
||||||
func TestMyMysql(t *testing.T) {
|
func TestMyMysql(t *testing.T) {
|
||||||
err := mymysqlDdlImport()
|
err := mymysqlDdlImport()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine, err := NewEngine("mymysql", "xorm_test/root/")
|
engine, err := NewEngine("mymysql", "xorm_test/root/")
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
testAll(engine, t)
|
||||||
engine.LogDebug("sql results: %v", sqlResults)
|
testAll2(engine, t)
|
||||||
|
testAll3(engine, t)
|
||||||
testAll(engine, t)
|
|
||||||
testAll2(engine, t)
|
|
||||||
testAll3(engine, t)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMyMysqlWithCache(t *testing.T) {
|
func TestMyMysqlWithCache(t *testing.T) {
|
||||||
err := mymysqlDdlImport()
|
err := mymysqlDdlImport()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine, err := NewEngine("mymysql", "xorm_test2/root/")
|
engine, err := NewEngine("mymysql", "xorm_test2/root/")
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
testAll(engine, t)
|
||||||
engine.LogDebug("sql results: %v", sqlResults)
|
testAll2(engine, t)
|
||||||
|
|
||||||
testAll(engine, t)
|
|
||||||
testAll2(engine, t)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func newMyMysqlEngine() (*Engine, error) {
|
func newMyMysqlEngine() (*Engine, error) {
|
||||||
return NewEngine("mymysql", "xorm_test2/root/")
|
return NewEngine("mymysql", "xorm_test2/root/")
|
||||||
|
}
|
||||||
|
|
||||||
|
func newMyMysqlDriverDB() (*sql.DB, error) {
|
||||||
|
return sql.Open("mymysql", "xorm_test2/root/")
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkMyMysqlDriverInsert(t *testing.B) {
|
||||||
|
doBenchDriver(newMyMysqlDriverDB, createTableMySql, dropTableMySql,
|
||||||
|
doBenchDriverInsert, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkMyMysqlDriverFind(t *testing.B) {
|
||||||
|
doBenchDriver(newMyMysqlDriverDB, createTableMySql, dropTableMySql,
|
||||||
|
doBenchDriverFind, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func mymysqlDdlImport() error {
|
func mymysqlDdlImport() error {
|
||||||
engine, err := NewEngine("mymysql", "/root/")
|
engine, err := NewEngine("mymysql", "/root/")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
||||||
engine.LogDebug("sql results: %v", sqlResults)
|
engine.LogDebug("sql results: %v", sqlResults)
|
||||||
engine.Close()
|
engine.Close()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlNoCacheInsert(t *testing.B) {
|
func BenchmarkMyMysqlNoCacheInsert(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
|
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlNoCacheFind(t *testing.B) {
|
func BenchmarkMyMysqlNoCacheFind(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
|
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlNoCacheFindPtr(t *testing.B) {
|
func BenchmarkMyMysqlNoCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
|
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlCacheInsert(t *testing.B) {
|
func BenchmarkMyMysqlCacheInsert(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlCacheFind(t *testing.B) {
|
func BenchmarkMyMysqlCacheFind(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMyMysqlCacheFindPtr(t *testing.B) {
|
func BenchmarkMyMysqlCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newMyMysqlEngine()
|
engine, err := newMyMysqlEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
219
mysql_test.go
219
mysql_test.go
|
@ -1,8 +1,10 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
_ "github.com/go-sql-driver/mysql"
|
"database/sql"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -13,136 +15,155 @@ utf8 COLLATE utf8_general_ci;
|
||||||
var mysqlShowTestSql bool = true
|
var mysqlShowTestSql bool = true
|
||||||
|
|
||||||
func TestMysql(t *testing.T) {
|
func TestMysql(t *testing.T) {
|
||||||
err := mysqlDdlImport()
|
err := mysqlDdlImport()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = mysqlShowTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = mysqlShowTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = mysqlShowTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = mysqlShowTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
testAll3(engine, t)
|
testAll3(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMysqlWithCache(t *testing.T) {
|
func TestMysqlWithCache(t *testing.T) {
|
||||||
err := mysqlDdlImport()
|
err := mysqlDdlImport()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = mysqlShowTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = mysqlShowTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = mysqlShowTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = mysqlShowTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newMysqlEngine() (*Engine, error) {
|
func newMysqlEngine() (*Engine, error) {
|
||||||
return NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
return NewEngine("mysql", "root:@/xorm_test?charset=utf8")
|
||||||
}
|
}
|
||||||
|
|
||||||
func mysqlDdlImport() error {
|
func mysqlDdlImport() error {
|
||||||
engine, err := NewEngine("mysql", "root:@/?charset=utf8")
|
engine, err := NewEngine("mysql", "root:@/?charset=utf8")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = mysqlShowTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = mysqlShowTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = mysqlShowTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = mysqlShowTestSql
|
||||||
|
|
||||||
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
||||||
engine.LogDebug("sql results: %v", sqlResults)
|
engine.LogDebug("sql results: %v", sqlResults)
|
||||||
engine.Close()
|
engine.Close()
|
||||||
return nil
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func newMysqlDriverDB() (*sql.DB, error) {
|
||||||
|
return sql.Open("mysql", "root:@/xorm_test?charset=utf8")
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
createTableMySql = "CREATE TABLE IF NOT EXISTS `big_struct` (`id` BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL, `name` VARCHAR(255) NULL, `title` VARCHAR(255) NULL, `age` VARCHAR(255) NULL, `alias` VARCHAR(255) NULL, `nick_name` VARCHAR(255) NULL);"
|
||||||
|
dropTableMySql = "DROP TABLE IF EXISTS `big_struct`;"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BenchmarkMysqlDriverInsert(t *testing.B) {
|
||||||
|
doBenchDriver(newMysqlDriverDB, createTableMySql, dropTableMySql,
|
||||||
|
doBenchDriverInsert, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkMysqlDriverFind(t *testing.B) {
|
||||||
|
doBenchDriver(newMysqlDriverDB, createTableMySql, dropTableMySql,
|
||||||
|
doBenchDriverFind, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlNoCacheInsert(t *testing.B) {
|
func BenchmarkMysqlNoCacheInsert(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlNoCacheFind(t *testing.B) {
|
func BenchmarkMysqlNoCacheFind(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlNoCacheFindPtr(t *testing.B) {
|
func BenchmarkMysqlNoCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlCacheInsert(t *testing.B) {
|
func BenchmarkMysqlCacheInsert(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlCacheFind(t *testing.B) {
|
func BenchmarkMysqlCacheFind(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkMysqlCacheFindPtr(t *testing.B) {
|
func BenchmarkMysqlCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newMysqlEngine()
|
engine, err := newMysqlEngine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
208
postgres_test.go
208
postgres_test.go
|
@ -1,48 +1,52 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
//"fmt"
|
"database/sql"
|
||||||
//_ "github.com/bylevel/pq"
|
"testing"
|
||||||
_ "github.com/lib/pq"
|
|
||||||
"testing"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newPostgresEngine() (*Engine, error) {
|
func newPostgresEngine() (*Engine, error) {
|
||||||
return NewEngine("postgres", "dbname=xorm_test sslmode=disable")
|
return NewEngine("postgres", "dbname=xorm_test sslmode=disable")
|
||||||
|
}
|
||||||
|
|
||||||
|
func newPostgresDriverDB() (*sql.DB, error) {
|
||||||
|
return sql.Open("postgres", "dbname=xorm_test sslmode=disable")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPostgres(t *testing.T) {
|
func TestPostgres(t *testing.T) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
testAll3(engine, t)
|
testAll3(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPostgresWithCache(t *testing.T) {
|
func TestPostgresWithCache(t *testing.T) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -142,118 +146,92 @@ func TestPostgres2(t *testing.T) {
|
||||||
transaction(engine, t)
|
transaction(engine, t)
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
/*
|
const (
|
||||||
|
createTablePostgres = `CREATE TABLE IF NOT EXISTS "big_struct" ("id" SERIAL PRIMARY KEY NOT NULL, "name" VARCHAR(255) NULL, "title" VARCHAR(255) NULL, "age" VARCHAR(255) NULL, "alias" VARCHAR(255) NULL, "nick_name" VARCHAR(255) NULL);`
|
||||||
|
dropTablePostgres = `DROP TABLE IF EXISTS "big_struct";`
|
||||||
|
)
|
||||||
|
|
||||||
func BenchmarkPostgresDriverInsert(t *testing.B) {
|
func BenchmarkPostgresDriverInsert(t *testing.B) {
|
||||||
t.StopTimer()
|
doBenchDriver(newPostgresDriverDB, createTablePostgres, dropTablePostgres,
|
||||||
engine, err := newPostgresEngine()
|
doBenchDriverInsert, t)
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer engine.Close()
|
|
||||||
|
|
||||||
db, err := engine.OpenDB()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
doBenchDriverInsert(engine, db, t)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresDriverFind(t *testing.B) {
|
func BenchmarkPostgresDriverFind(t *testing.B) {
|
||||||
t.StopTimer()
|
doBenchDriver(newPostgresDriverDB, createTablePostgres, dropTablePostgres,
|
||||||
engine, err := newPostgresEngine()
|
doBenchDriverFind, t)
|
||||||
|
}
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer engine.Close()
|
|
||||||
|
|
||||||
db, err := engine.OpenDB()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//defer db.Close()
|
|
||||||
|
|
||||||
doBenchDriverFind(engine, db, t)
|
|
||||||
}*/
|
|
||||||
|
|
||||||
func BenchmarkPostgresNoCacheInsert(t *testing.B) {
|
func BenchmarkPostgresNoCacheInsert(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresNoCacheFind(t *testing.B) {
|
func BenchmarkPostgresNoCacheFind(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresNoCacheFindPtr(t *testing.B) {
|
func BenchmarkPostgresNoCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresCacheInsert(t *testing.B) {
|
func BenchmarkPostgresCacheInsert(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresCacheFind(t *testing.B) {
|
func BenchmarkPostgresCacheFind(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkPostgresCacheFindPtr(t *testing.B) {
|
func BenchmarkPostgresCacheFindPtr(t *testing.B) {
|
||||||
engine, err := newPostgresEngine()
|
engine, err := newPostgresEngine()
|
||||||
|
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
|
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
263
sqlite3_test.go
263
sqlite3_test.go
|
@ -1,199 +1,140 @@
|
||||||
package xorm
|
package xorm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
//"database/sql"
|
"database/sql"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
"os"
|
||||||
"os"
|
"testing"
|
||||||
"testing"
|
|
||||||
|
_ "github.com/mattn/go-sqlite3"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newSqlite3Engine() (*Engine, error) {
|
func newSqlite3Engine() (*Engine, error) {
|
||||||
os.Remove("./test.db")
|
os.Remove("./test.db")
|
||||||
return NewEngine("sqlite3", "./test.db")
|
return NewEngine("sqlite3", "./test.db")
|
||||||
|
}
|
||||||
|
|
||||||
|
func newSqlite3DriverDB() (*sql.DB, error) {
|
||||||
|
os.Remove("./test.db")
|
||||||
|
return sql.Open("sqlite3", "./test.db")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSqlite3(t *testing.T) {
|
func TestSqlite3(t *testing.T) {
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
testAll3(engine, t)
|
testAll3(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSqlite3WithCache(t *testing.T) {
|
func TestSqlite3WithCache(t *testing.T) {
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
engine.ShowSQL = showTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = showTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = showTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = showTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*func BenchmarkSqlite3DriverInsert(t *testing.B) {
|
const (
|
||||||
t.StopTimer()
|
createTableSqlite3 = "CREATE TABLE IF NOT EXISTS `big_struct` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NULL, `title` TEXT NULL, `age` TEXT NULL, `alias` TEXT NULL, `nick_name` TEXT NULL);"
|
||||||
engine, err := newSqlite3Engine()
|
dropTableSqlite3 = "DROP TABLE IF EXISTS `big_struct`;"
|
||||||
if err != nil {
|
)
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = engine.CreateTables(&BigStruct{})
|
func BenchmarkSqlite3DriverInsert(t *testing.B) {
|
||||||
if err != nil {
|
doBenchDriver(newSqlite3DriverDB, createTableSqlite3, dropTableSqlite3,
|
||||||
t.Error(err)
|
doBenchDriverInsert, t)
|
||||||
return
|
|
||||||
}
|
|
||||||
engine.Close()
|
|
||||||
|
|
||||||
db, err := sql.Open("sqlite3", "./test.db")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
doBenchDriverInsertS(db, t)
|
|
||||||
|
|
||||||
db.Close()
|
|
||||||
|
|
||||||
engine, err = newSqlite3Engine()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = engine.DropTables(&BigStruct{})
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer engine.Close()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3DriverFind(t *testing.B) {
|
func BenchmarkSqlite3DriverFind(t *testing.B) {
|
||||||
t.StopTimer()
|
doBenchDriver(newSqlite3DriverDB, createTableSqlite3, dropTableSqlite3,
|
||||||
engine, err := newSqlite3Engine()
|
doBenchDriverFind, t)
|
||||||
defer engine.Close()
|
}
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = engine.CreateTables(&BigStruct{})
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
engine.Close()
|
|
||||||
|
|
||||||
db, err := sql.Open("sqlite3", "./test.db")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
doBenchDriverFindS(db, t)
|
|
||||||
|
|
||||||
db.Close()
|
|
||||||
|
|
||||||
engine, err = newSqlite3Engine()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
err = engine.DropTables(&BigStruct{})
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer engine.Close()
|
|
||||||
}*/
|
|
||||||
|
|
||||||
func BenchmarkSqlite3NoCacheInsert(t *testing.B) {
|
func BenchmarkSqlite3NoCacheInsert(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3NoCacheFind(t *testing.B) {
|
func BenchmarkSqlite3NoCacheFind(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3NoCacheFindPtr(t *testing.B) {
|
func BenchmarkSqlite3NoCacheFindPtr(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//engine.ShowSQL = true
|
//engine.ShowSQL = true
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3CacheInsert(t *testing.B) {
|
func BenchmarkSqlite3CacheInsert(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
doBenchInsert(engine, t)
|
doBenchInsert(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3CacheFind(t *testing.B) {
|
func BenchmarkSqlite3CacheFind(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
doBenchFind(engine, t)
|
doBenchFind(engine, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkSqlite3CacheFindPtr(t *testing.B) {
|
func BenchmarkSqlite3CacheFindPtr(t *testing.B) {
|
||||||
t.StopTimer()
|
t.StopTimer()
|
||||||
engine, err := newSqlite3Engine()
|
engine, err := newSqlite3Engine()
|
||||||
defer engine.Close()
|
defer engine.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
doBenchFindPtr(engine, t)
|
doBenchFindPtr(engine, t)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue