Skip to content
This repository was archived by the owner on Sep 7, 2021. It is now read-only.
This repository is currently being migrated. It's locked while the migration is in progress.

Commit 824e444

Browse files
committed
add redis cache ci tests
1 parent 3e8290c commit 824e444

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

.drone.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ services:
2525
when:
2626
event: [ push, tag, pull_request ]
2727

28+
redis:
29+
image: redis:3.0
30+
2831
#mssql:
2932
# image: microsoft/mssql-server-linux:2017-CU11
3033
# environment:
@@ -55,12 +58,21 @@ pipeline:
5558
psql -U postgres -d xorm_test -h pgsql \
5659
-c "create schema xorm;"
5760
61+
init_redis:
62+
image: redis:3.0
63+
commands:
64+
- sleep 5
65+
- redis-cli -h redis ping
66+
- redis-cli -h redis set HELLO hello
67+
- redis-cli -h redis get HELLO
68+
5869
build:
5970
image: golang:${GO_VERSION}
6071
commands:
6172
- go get -t -d -v ./...
6273
- go get -u github.com/go-xorm/core
6374
- go get -u github.com/go-xorm/builder
75+
- go get -u github.com/go-xorm/xorm-redis-cache
6476
- go build -v
6577
when:
6678
event: [ push, pull_request ]
@@ -71,6 +83,7 @@ pipeline:
7183
- go get -u github.com/wadey/gocovmerge
7284
- go test -v -race -db="sqlite3" -conn_str="./test.db" -coverprofile=coverage1-1.txt -covermode=atomic
7385
- go test -v -race -db="sqlite3" -conn_str="./test.db" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic
86+
- go test -v -race -db="sqlite3" -conn_str="./test.db" -cache=true -cache_redis_server="redis:6379" -coverprofile=coverage1-2.txt -covermode=atomic
7487
when:
7588
event: [ push, pull_request ]
7689

@@ -79,6 +92,7 @@ pipeline:
7992
commands:
8093
- go test -v -race -db="mysql" -conn_str="root:@tcp(mysql)/xorm_test" -coverprofile=coverage2-1.txt -covermode=atomic
8194
- go test -v -race -db="mysql" -conn_str="root:@tcp(mysql)/xorm_test" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic
95+
- go test -v -race -db="mysql" -conn_str="root:@tcp(mysql)/xorm_test" -cache=true -cache_redis_server="redis:6379" -coverprofile=coverage2-2.txt -covermode=atomic
8296
when:
8397
event: [ push, pull_request ]
8498

@@ -87,6 +101,7 @@ pipeline:
87101
commands:
88102
- go test -v -race -db="mymysql" -conn_str="tcp:mysql:3306*xorm_test/root/" -coverprofile=coverage3-1.txt -covermode=atomic
89103
- go test -v -race -db="mymysql" -conn_str="tcp:mysql:3306*xorm_test/root/" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic
104+
- go test -v -race -db="mymysql" -conn_str="tcp:mysql:3306*xorm_test/root/" -cache=true -cache_redis_server="redis:6379" -coverprofile=coverage3-2.txt -covermode=atomic
90105
when:
91106
event: [ push, pull_request ]
92107

@@ -95,6 +110,7 @@ pipeline:
95110
commands:
96111
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -coverprofile=coverage4-1.txt -covermode=atomic
97112
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic
113+
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -cache=true -cache_redis_server="redis:6379" -coverprofile=coverage4-2.txt -covermode=atomic
98114
when:
99115
event: [ push, pull_request ]
100116

@@ -103,6 +119,7 @@ pipeline:
103119
commands:
104120
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic
105121
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic
122+
- go test -v -race -db="postgres" -conn_str="postgres://postgres:@pgsql/xorm_test?sslmode=disable" -schema=xorm -cache=true -cache_redis_server="redis:6379" -coverprofile=coverage5-2.txt -covermode=atomic
106123
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt > coverage.txt
107124
when:
108125
event: [ push, pull_request ]

interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ type EngineInterface interface {
8484
GetTableMapper() core.IMapper
8585
GetTZDatabase() *time.Location
8686
GetTZLocation() *time.Location
87+
Logger() core.ILogger
8788
MapCacher(interface{}, core.Cacher) error
8889
NewSession() *Session
8990
NoAutoTime() *Session

xorm_test.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
_ "github.com/denisenkom/go-mssqldb"
1111
_ "github.com/go-sql-driver/mysql"
1212
"github.com/go-xorm/core"
13+
"github.com/go-xorm/xorm-redis-cache"
1314
_ "github.com/lib/pq"
1415
_ "github.com/mattn/go-sqlite3"
1516
_ "github.com/ziutek/mymysql/godrv"
@@ -20,14 +21,15 @@ var (
2021
dbType string
2122
connString string
2223

23-
db = flag.String("db", "sqlite3", "the tested database")
24-
showSQL = flag.Bool("show_sql", true, "show generated SQLs")
25-
ptrConnStr = flag.String("conn_str", "./test.db?cache=shared&mode=rwc", "test database connection string")
26-
mapType = flag.String("map_type", "snake", "indicate the name mapping")
27-
cache = flag.Bool("cache", false, "if enable cache")
28-
cluster = flag.Bool("cluster", false, "if this is a cluster")
29-
splitter = flag.String("splitter", ";", "the splitter on connstr for cluster")
30-
schema = flag.String("schema", "", "specify the schema")
24+
db = flag.String("db", "sqlite3", "the tested database")
25+
showSQL = flag.Bool("show_sql", true, "show generated SQLs")
26+
ptrConnStr = flag.String("conn_str", "./test.db?cache=shared&mode=rwc", "test database connection string")
27+
mapType = flag.String("map_type", "snake", "indicate the name mapping")
28+
cache = flag.Bool("cache", false, "if enable cache")
29+
cacheRedisServer = flag.String("cache_redis_server", "127.0.0.1:6379", "if cache enabled this will enable redis cache mode")
30+
cluster = flag.Bool("cluster", false, "if this is a cluster")
31+
splitter = flag.String("splitter", ";", "the splitter on connstr for cluster")
32+
schema = flag.String("schema", "", "specify the schema")
3133
)
3234

3335
func createEngine(dbType, connStr string) error {
@@ -49,8 +51,13 @@ func createEngine(dbType, connStr string) error {
4951
testEngine.ShowSQL(*showSQL)
5052
testEngine.SetLogLevel(core.LOG_DEBUG)
5153
if *cache {
52-
cacher := NewLRUCacher(NewMemoryStore(), 100000)
53-
testEngine.SetDefaultCacher(cacher)
54+
if *cacheRedisServer == "" {
55+
cacher := NewLRUCacher(NewMemoryStore(), 100000)
56+
testEngine.SetDefaultCacher(cacher)
57+
} else {
58+
cacher := xormrediscache.NewRedisCacher(*cacheRedisServer, "", xormrediscache.DEFAULT_EXPIRATION, testEngine.Logger())
59+
testEngine.SetDefaultCacher(cacher)
60+
}
5461
}
5562

5663
if len(*mapType) > 0 {

0 commit comments

Comments
 (0)