github.com/cayleygraph/cayley@v0.7.7/graph/sql/mysql/mysql_test.go (about) 1 // +build docker 2 3 package mysql 4 5 import ( 6 "testing" 7 8 "github.com/cayleygraph/cayley/graph" 9 "github.com/cayleygraph/cayley/graph/sql/sqltest" 10 "github.com/cayleygraph/cayley/internal/dock" 11 ) 12 13 func makeMysqlVersion(image string) sqltest.DatabaseFunc { 14 return func(t testing.TB) (string, graph.Options, func()) { 15 var conf dock.Config 16 17 conf.Image = image 18 conf.Tty = true 19 conf.Env = []string{ 20 `MYSQL_ROOT_PASSWORD=root`, 21 `MYSQL_DATABASE=testdb`, 22 } 23 24 addr, closer := dock.RunAndWait(t, conf, "3306", nil) 25 addr = `root:root@tcp(` + addr + `)/testdb` 26 return addr, nil, func() { 27 closer() 28 } 29 } 30 } 31 32 const ( 33 mysqlImage = "mysql:5.7" 34 mariadbImage = "mariadb:10" 35 ) 36 37 func TestMysql(t *testing.T) { 38 sqltest.TestAll(t, Type, makeMysqlVersion(mysqlImage), nil) 39 } 40 41 func TestMariaDB(t *testing.T) { 42 sqltest.TestAll(t, Type, makeMysqlVersion(mariadbImage), nil) 43 } 44 45 func BenchmarkMysql(t *testing.B) { 46 sqltest.BenchmarkAll(t, Type, makeMysqlVersion(mysqlImage), nil) 47 } 48 49 func BenchmarkMariadb(t *testing.B) { 50 sqltest.BenchmarkAll(t, Type, makeMysqlVersion(mariadbImage), nil) 51 }