gitea.com/xorm/xorm-redis-cache@v0.2.0/mysql_redis_cacher_test.go (about) 1 package xormrediscache 2 3 import ( 4 "database/sql" 5 _ "encoding/gob" 6 "testing" 7 8 . "gitea.com/xorm/tests" 9 _ "github.com/go-sql-driver/mysql" 10 "xorm.io/xorm" 11 "xorm.io/xorm/log" 12 "xorm.io/xorm/names" 13 ) 14 15 /* 16 CREATE DATABASE IF NOT EXISTS xorm_test CHARACTER SET 17 utf8 COLLATE utf8_general_ci; 18 */ 19 func TestMysqlWithCache(t *testing.T) { 20 err := mysqlDdlImport() 21 if err != nil { 22 t.Error(err) 23 return 24 } 25 26 engine, err := xorm.NewEngine("mysql", "root:@/xorm_test2?charset=utf8") 27 defer engine.Close() 28 if err != nil { 29 t.Error(err) 30 return 31 } 32 engine.SetDefaultCacher(NewRedisCacher("localhost:6379", "", DEFAULT_EXPIRATION, engine.Logger())) 33 engine.ShowSQL(true) 34 engine.Logger().SetLevel(log.LOG_DEBUG) 35 36 BaseTestAll(engine, t) 37 BaseTestAllSnakeMapper(engine, t) 38 BaseTestAll2(engine, t) 39 } 40 41 func TestMysqlWithCacheSameMapper(t *testing.T) { 42 err := mysqlDdlImport() 43 if err != nil { 44 t.Error(err) 45 return 46 } 47 48 engine, err := xorm.NewEngine("mysql", "root:@/xorm_test3?charset=utf8") 49 defer engine.Close() 50 if err != nil { 51 t.Error(err) 52 return 53 } 54 engine.SetMapper(names.SameMapper{}) 55 engine.SetDefaultCacher(NewRedisCacher("localhost:6379", "", DEFAULT_EXPIRATION, engine.Logger())) 56 engine.ShowSQL(true) 57 engine.Logger().SetLevel(log.LOG_DEBUG) 58 59 BaseTestAll(engine, t) 60 BaseTestAllSameMapper(engine, t) 61 BaseTestAll2(engine, t) 62 } 63 64 func newMysqlEngine() (*xorm.Engine, error) { 65 return xorm.NewEngine("mysql", "root:@/xorm_test?charset=utf8") 66 } 67 68 func newMysqlEngineWithCacher() (*xorm.Engine, error) { 69 engine, err := newMysqlEngine() 70 if err == nil { 71 engine.SetDefaultCacher(NewRedisCacher("localhost:6379", "", DEFAULT_EXPIRATION, engine.Logger())) 72 } 73 return engine, err 74 } 75 76 func mysqlDdlImport() error { 77 engine, err := xorm.NewEngine("mysql", "root:@/?charset=utf8") 78 if err != nil { 79 return err 80 } 81 engine.ShowSQL(true) 82 engine.Logger().SetLevel(log.LOG_DEBUG) 83 84 sqlResults, _ := engine.ImportFile("../testdata/mysql_ddl.sql") 85 engine.Logger().Debugf("sql results: %v", sqlResults) 86 engine.Close() 87 return nil 88 } 89 90 func newMysqlDriverDB() (*sql.DB, error) { 91 return sql.Open("mysql", "root:@/xorm_test?charset=utf8") 92 } 93 94 func BenchmarkMysqlDriverInsert(t *testing.B) { 95 DoBenchDriver(newMysqlDriverDB, CreateTableMySql, DropTableMySql, 96 DoBenchDriverInsert, t) 97 } 98 99 func BenchmarkMysqlDriverFind(t *testing.B) { 100 DoBenchDriver(newMysqlDriverDB, CreateTableMySql, DropTableMySql, 101 DoBenchDriverFind, t) 102 } 103 104 func BenchmarkMysqlCacheInsert(t *testing.B) { 105 engine, err := newMysqlEngineWithCacher() 106 defer engine.Close() 107 if err != nil { 108 t.Error(err) 109 return 110 } 111 112 DoBenchInsert(engine, t) 113 } 114 115 func BenchmarkMysqlCacheFind(t *testing.B) { 116 engine, err := newMysqlEngineWithCacher() 117 defer engine.Close() 118 if err != nil { 119 t.Error(err) 120 return 121 } 122 123 DoBenchFind(engine, t) 124 } 125 126 func BenchmarkMysqlCacheFindPtr(t *testing.B) { 127 engine, err := newMysqlEngineWithCacher() 128 defer engine.Close() 129 if err != nil { 130 t.Error(err) 131 return 132 } 133 134 DoBenchFindPtr(engine, t) 135 }