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  }