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  }