xorm/tests/mssql_test.go

145 lines
3.2 KiB
Go
Raw Normal View History

package tests
2013-12-20 06:53:40 +00:00
2013-12-20 07:55:34 +00:00
//
// +build windows
2013-12-20 06:53:40 +00:00
import (
2013-12-26 10:23:40 +00:00
"database/sql"
2013-12-20 06:53:40 +00:00
"testing"
2013-12-20 07:55:34 +00:00
2014-04-11 09:04:39 +00:00
"github.com/go-xorm/xorm"
"github.com/go-xorm/xorm/caches"
2013-12-20 07:55:34 +00:00
_ "github.com/lunny/godbc"
2013-12-20 06:53:40 +00:00
)
2013-12-26 10:23:40 +00:00
const mssqlConnStr = "driver={SQL Server};Server=192.168.20.135;Database=xorm_test; uid=sa; pwd=1234;"
2013-12-20 06:53:40 +00:00
2014-01-23 03:09:48 +00:00
func newMssqlEngine() (*xorm.Engine, error) {
return xorm.NewEngine("odbc", mssqlConnStr)
2013-12-20 06:53:40 +00:00
}
func TestMssql(t *testing.T) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
testAll(engine, t)
testAll2(engine, t)
}
func TestMssqlWithCache(t *testing.T) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(xorm.NewLRUCacher(caches.NewMemoryStore(), 1000))
2013-12-20 06:53:40 +00:00
engine.ShowSQL = showTestSql
engine.ShowErr = showTestSql
engine.ShowWarn = showTestSql
engine.ShowDebug = showTestSql
testAll(engine, t)
testAll2(engine, t)
}
2013-12-26 10:23:40 +00:00
func newMssqlDriverDB() (*sql.DB, error) {
return sql.Open("odbc", mssqlConnStr)
}
const (
createTableMssql = `IF NOT EXISTS (SELECT [name] FROM sys.tables WHERE [name] = 'big_struct' ) CREATE TABLE
"big_struct" ("id" BIGINT PRIMARY KEY IDENTITY NOT NULL, "name" VARCHAR(255) NULL, "title" VARCHAR(255) NULL,
"age" VARCHAR(255) NULL, "alias" VARCHAR(255) NULL, "nick_name" VARCHAR(255) NULL);
`
dropTableMssql = "IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'big_struct') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE IF EXISTS `big_struct`;"
)
func BenchmarkMssqlDriverInsert(t *testing.B) {
doBenchDriver(newMssqlDriverDB, createTableMssql, dropTableMssql,
doBenchDriverInsert, t)
}
func BenchmarkMssqlDriverFind(t *testing.B) {
doBenchDriver(newMssqlDriverDB, createTableMssql, dropTableMssql,
doBenchDriverFind, t)
}
func BenchmarkMssqlNoCacheInsert(t *testing.B) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchInsert(engine, t)
}
func BenchmarkMssqlNoCacheFind(t *testing.B) {
2013-12-20 06:53:40 +00:00
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchFind(engine, t)
}
2013-12-26 10:23:40 +00:00
func BenchmarkMssqlNoCacheFindPtr(t *testing.B) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
//engine.ShowSQL = true
doBenchFindPtr(engine, t)
}
func BenchmarkMssqlCacheInsert(t *testing.B) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(xorm.NewLRUCacher(caches.NewMemoryStore(), 1000))
2013-12-26 10:23:40 +00:00
doBenchInsert(engine, t)
}
func BenchmarkMssqlCacheFind(t *testing.B) {
2013-12-20 06:53:40 +00:00
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(xorm.NewLRUCacher(caches.NewMemoryStore(), 1000))
2013-12-26 10:23:40 +00:00
2013-12-20 06:53:40 +00:00
doBenchFind(engine, t)
}
2013-12-26 10:23:40 +00:00
func BenchmarkMssqlCacheFindPtr(t *testing.B) {
engine, err := newMssqlEngine()
defer engine.Close()
if err != nil {
t.Error(err)
return
}
engine.SetDefaultCacher(xorm.NewLRUCacher(caches.NewMemoryStore(), 1000))
2013-12-26 10:23:40 +00:00
doBenchFindPtr(engine, t)
}