xorm/mysql_test.go

192 lines
4.0 KiB
Go
Raw Normal View History

2013-06-08 04:41:51 +00:00
package xorm
import (
2013-12-18 03:31:32 +00:00
"database/sql"
"testing"
2013-12-16 15:42:31 +00:00
2013-12-18 03:31:32 +00:00
_ "github.com/go-sql-driver/mysql"
2013-06-08 04:41:51 +00:00
)
2013-06-21 04:39:01 +00:00
/*
2013-07-15 15:45:04 +00:00
CREATE DATABASE IF NOT EXISTS xorm_test CHARACTER SET
2013-06-21 04:39:01 +00:00
utf8 COLLATE utf8_general_ci;
*/
2013-06-08 04:41:51 +00:00
func TestMysql(t *testing.T) {
2013-12-18 03:31:32 +00:00
err := mysqlDdlImport()
if err != nil {
t.Error(err)
return
}
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
2013-12-18 03:31:32 +00:00
testAll(engine, t)
testAll2(engine, t)
testAll3(engine, t)
2013-06-08 04:41:51 +00:00
}
2014-01-08 14:47:30 +00:00
func TestMysqlSameMapper(t *testing.T) {
err := mysqlDdlImport()
if err != nil {
t.Error(err)
return
}
engine, err := NewEngine("mysql", "root:@/xorm_test3?charset=utf8")
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
engine.SetMapper(SameMapper{})
testAll(engine, t)
testAll2(engine, t)
testAll3(engine, t)
}
func TestMysqlWithCache(t *testing.T) {
2013-12-18 03:31:32 +00:00
err := mysqlDdlImport()
if err != nil {
t.Error(err)
return
}
engine, err := NewEngine("mysql", "root:@/xorm_test?charset=utf8")
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
2013-12-18 03:31:32 +00:00
testAll(engine, t)
testAll2(engine, t)
}
2013-12-08 13:40:58 +00:00
func newMysqlEngine() (*Engine, error) {
2013-12-18 03:31:32 +00:00
return NewEngine("mysql", "root:@/xorm_test?charset=utf8")
2013-12-08 13:40:58 +00:00
}
2013-12-06 03:09:34 +00:00
func mysqlDdlImport() error {
2013-12-18 03:31:32 +00:00
engine, err := NewEngine("mysql", "root:@/?charset=utf8")
if err != nil {
return err
}
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
2013-12-18 03:31:32 +00:00
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
engine.LogDebug("sql results: %v", sqlResults)
engine.Close()
return nil
2013-12-16 15:42:31 +00:00
}
func newMysqlDriverDB() (*sql.DB, error) {
2013-12-18 03:31:32 +00:00
return sql.Open("mysql", "root:@/xorm_test?charset=utf8")
2013-12-16 15:42:31 +00:00
}
const (
2013-12-18 03:31:32 +00:00
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`;"
2013-12-16 15:42:31 +00:00
)
func BenchmarkMysqlDriverInsert(t *testing.B) {
2013-12-18 03:31:32 +00:00
doBenchDriver(newMysqlDriverDB, createTableMySql, dropTableMySql,
doBenchDriverInsert, t)
2013-12-16 15:42:31 +00:00
}
func BenchmarkMysqlDriverFind(t *testing.B) {
2013-12-18 03:31:32 +00:00
doBenchDriver(newMysqlDriverDB, createTableMySql, dropTableMySql,
doBenchDriverFind, t)
2013-12-06 03:09:34 +00:00
}
2013-12-04 07:03:21 +00:00
func BenchmarkMysqlNoCacheInsert(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchInsert(engine, t)
2013-12-04 07:03:21 +00:00
}
func BenchmarkMysqlNoCacheFind(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchFind(engine, t)
}
2013-12-04 07:03:21 +00:00
func BenchmarkMysqlNoCacheFindPtr(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchFindPtr(engine, t)
2013-12-04 07:03:21 +00:00
}
func BenchmarkMysqlCacheInsert(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
doBenchInsert(engine, t)
2013-12-04 07:03:21 +00:00
}
func BenchmarkMysqlCacheFind(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
doBenchFind(engine, t)
2013-12-04 07:03:21 +00:00
}
func BenchmarkMysqlCacheFindPtr(t *testing.B) {
2013-12-18 03:31:32 +00:00
engine, err := newMysqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
doBenchFindPtr(engine, t)
}