mirror of
https://github.com/redis/go-redis.git
synced 2025-07-29 17:41:15 +03:00
fix(tests): enable testing with Redis CE 8.0-M4 in CI (#3247)
* introduce github workflow for ci similar to the one in redis-py use prerelease for 8.0-M4 * Enable osscluster tests in CI * Add redis major version env Enable filtering test per redis major version Fix test for FT.SEARCH WITHSCORE, the default scorer has changed. fix Makefile syntax remove filter from github action fix makefile use the container name in Makefile * remove 1.20 from doctests * self review, cleanup, add comments * add comments, reorder prints, add default value for REDIS_MAJOR_VERSION
This commit is contained in:
52
main_test.go
52
main_test.go
@ -13,7 +13,6 @@ import (
|
||||
|
||||
. "github.com/bsm/ginkgo/v2"
|
||||
. "github.com/bsm/gomega"
|
||||
|
||||
"github.com/redis/go-redis/v9"
|
||||
)
|
||||
|
||||
@ -28,7 +27,7 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
sentinelName = "mymaster"
|
||||
sentinelName = "go-redis-test"
|
||||
sentinelMasterPort = "9123"
|
||||
sentinelSlave1Port = "9124"
|
||||
sentinelSlave2Port = "9125"
|
||||
@ -43,8 +42,8 @@ var (
|
||||
)
|
||||
|
||||
var (
|
||||
rediStackPort = "6379"
|
||||
rediStackAddr = ":" + rediStackPort
|
||||
redisStackPort = "6379"
|
||||
redisStackAddr = ":" + redisStackPort
|
||||
)
|
||||
|
||||
var (
|
||||
@ -59,14 +58,22 @@ var (
|
||||
)
|
||||
|
||||
var cluster = &clusterScenario{
|
||||
ports: []string{"8220", "8221", "8222", "8223", "8224", "8225"},
|
||||
ports: []string{"16600", "16601", "16602", "16603", "16604", "16605"},
|
||||
nodeIDs: make([]string, 6),
|
||||
processes: make(map[string]*redisProcess, 6),
|
||||
clients: make(map[string]*redis.Client, 6),
|
||||
}
|
||||
|
||||
// Redis Software Cluster
|
||||
var RECluster = false
|
||||
var USE_CONTAINERIZED_REDIS = false
|
||||
|
||||
// Redis Community Edition Docker
|
||||
var RCEDocker = false
|
||||
|
||||
// Notes the major version of redis we are executing tests.
|
||||
// This can be used before we change the bsm fork of ginkgo for one,
|
||||
// which have support for label sets, so we can filter tests per redis major version.
|
||||
var REDIS_MAJOR_VERSION = 7
|
||||
|
||||
func registerProcess(port string, p *redisProcess) {
|
||||
if processes == nil {
|
||||
@ -83,8 +90,19 @@ var _ = BeforeSuite(func() {
|
||||
}
|
||||
var err error
|
||||
RECluster, _ = strconv.ParseBool(os.Getenv("RE_CLUSTER"))
|
||||
USE_CONTAINERIZED_REDIS, _ = strconv.ParseBool(os.Getenv("USE_CONTAINERIZED_REDIS"))
|
||||
if !RECluster || !USE_CONTAINERIZED_REDIS {
|
||||
RCEDocker, _ = strconv.ParseBool(os.Getenv("RCE_DOCKER"))
|
||||
|
||||
REDIS_MAJOR_VERSION, _ = strconv.Atoi(os.Getenv("REDIS_MAJOR_VERSION"))
|
||||
if REDIS_MAJOR_VERSION == 0 {
|
||||
REDIS_MAJOR_VERSION = 7
|
||||
}
|
||||
Expect(REDIS_MAJOR_VERSION).To(BeNumerically(">=", 6))
|
||||
Expect(REDIS_MAJOR_VERSION).To(BeNumerically("<=", 8))
|
||||
|
||||
fmt.Printf("RECluster: %v\n", RECluster)
|
||||
fmt.Printf("RCEDocker: %v\n", RCEDocker)
|
||||
fmt.Printf("REDIS_MAJOR_VERSION: %v\n", REDIS_MAJOR_VERSION)
|
||||
if !RECluster && !RCEDocker {
|
||||
|
||||
redisMain, err = startRedis(redisPort)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
@ -121,18 +139,24 @@ var _ = BeforeSuite(func() {
|
||||
err = startCluster(ctx, cluster)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
} else {
|
||||
redisPort = rediStackPort
|
||||
redisAddr = rediStackAddr
|
||||
redisPort = redisStackPort
|
||||
redisAddr = redisStackAddr
|
||||
|
||||
if !RECluster {
|
||||
// populate cluster node information
|
||||
Expect(configureClusterTopology(ctx, cluster)).NotTo(HaveOccurred())
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var _ = AfterSuite(func() {
|
||||
if !RECluster {
|
||||
Expect(cluster.Close()).NotTo(HaveOccurred())
|
||||
}
|
||||
|
||||
for _, p := range processes {
|
||||
Expect(p.Close()).NotTo(HaveOccurred())
|
||||
}
|
||||
// NOOP if there are no processes registered
|
||||
for _, p := range processes {
|
||||
Expect(p.Close()).NotTo(HaveOccurred())
|
||||
}
|
||||
processes = nil
|
||||
})
|
||||
@ -156,8 +180,8 @@ func redisOptions() *redis.Options {
|
||||
ContextTimeoutEnabled: true,
|
||||
|
||||
MaxRetries: -1,
|
||||
PoolSize: 10,
|
||||
|
||||
PoolSize: 10,
|
||||
PoolTimeout: 30 * time.Second,
|
||||
ConnMaxIdleTime: time.Minute,
|
||||
}
|
||||
|
Reference in New Issue
Block a user