2014-05-16 11:03:23 +04:00
|
|
|
package server
|
2014-05-02 13:08:20 +04:00
|
|
|
|
|
|
|
import (
|
2014-06-19 13:46:20 +04:00
|
|
|
"github.com/siddontang/ledisdb/client/go/redis"
|
2014-05-05 07:37:44 +04:00
|
|
|
"os"
|
|
|
|
"sync"
|
2014-05-02 13:08:20 +04:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2014-05-05 07:37:44 +04:00
|
|
|
var testAppOnce sync.Once
|
|
|
|
var testApp *App
|
|
|
|
|
|
|
|
var testPool *redis.Pool
|
|
|
|
|
|
|
|
func newTestRedisPool() {
|
|
|
|
f := func() (redis.Conn, error) {
|
2014-05-13 04:49:20 +04:00
|
|
|
c, err := redis.Dial("tcp", "127.0.0.1:16380")
|
2014-05-05 07:37:44 +04:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return c, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
testPool = redis.NewPool(f, 4)
|
|
|
|
}
|
|
|
|
|
|
|
|
func getTestConn() redis.Conn {
|
2014-05-16 05:10:09 +04:00
|
|
|
startTestApp()
|
2014-05-05 07:37:44 +04:00
|
|
|
return testPool.Get()
|
|
|
|
}
|
|
|
|
|
|
|
|
func startTestApp() {
|
|
|
|
f := func() {
|
|
|
|
newTestRedisPool()
|
2014-05-02 13:08:20 +04:00
|
|
|
|
2014-05-08 06:54:33 +04:00
|
|
|
os.RemoveAll("/tmp/testdb")
|
2014-05-05 07:37:44 +04:00
|
|
|
|
|
|
|
var d = []byte(`
|
|
|
|
{
|
2014-06-06 07:25:13 +04:00
|
|
|
"data_dir" : "/tmp/testdb",
|
2014-05-13 04:49:20 +04:00
|
|
|
"addr" : "127.0.0.1:16380",
|
2014-05-16 05:42:27 +04:00
|
|
|
"db" : {
|
|
|
|
"data_db" : {
|
|
|
|
"compression":true,
|
|
|
|
"block_size" : 32768,
|
|
|
|
"write_buffer_size" : 2097152,
|
|
|
|
"cache_size" : 20971520
|
|
|
|
}
|
|
|
|
}
|
2014-05-05 07:37:44 +04:00
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
cfg, err := NewConfig(d)
|
|
|
|
if err != nil {
|
|
|
|
println(err.Error())
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
testApp, err = NewApp(cfg)
|
|
|
|
if err != nil {
|
|
|
|
println(err.Error())
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
go testApp.Run()
|
|
|
|
}
|
|
|
|
|
|
|
|
testAppOnce.Do(f)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestApp(t *testing.T) {
|
|
|
|
startTestApp()
|
2014-05-02 13:08:20 +04:00
|
|
|
}
|