Skip to content

Commit 1b80811

Browse files
committed
mix of makefile and action
1 parent f8f0dd5 commit 1b80811

File tree

7 files changed

+84
-123
lines changed

7 files changed

+84
-123
lines changed

.github/actions/run-tests/action.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,5 @@ runs:
4747
RCE_DOCKER: "true"
4848
RE_CLUSTER: "false"
4949
run: |
50-
go test ./... -short -race && \
51-
go test -coverprofile=coverage.txt -covermode=atomic ./... && \
50+
make test.ci
5251
shell: bash

Makefile

+6-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ redisstackdocker.stop:
99

1010
test: testdeps
1111
$(MAKE) redisstackdocker.start
12+
$(MAKE) test.ci
13+
$(MAKE) redisstackdocker.stop
14+
15+
testdeps: testdata/redis/src/redis-server
16+
17+
test.ci:
1218
$(eval GO_VERSION := $(shell go version | cut -d " " -f 3 | cut -d. -f2))
1319
set -e; for dir in $(GO_MOD_DIRS); do \
1420
if echo "$${dir}" | grep -q "./example" && [ "$(GO_VERSION)" = "19" ]; then \
@@ -26,9 +32,6 @@ test: testdeps
2632
done
2733
cd internal/customvet && go build .
2834
go vet -vettool ./internal/customvet/customvet
29-
$(MAKE) redisstackdocker.stop
30-
31-
testdeps: testdata/redis/src/redis-server
3235

3336
bench:
3437
go test ./... -test.run=NONE -test.bench=. -test.benchmem

docker-compose.yml

+21-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ services:
4646
ports:
4747
- 26379:26379
4848
volumes:
49-
- "./dockers/sentinel.conf:/redis.conf"
49+
- "./dockers/sentinels/sentinel1.conf:/redis.conf"
5050
profiles:
5151
- sentinel
5252
- all-stack
@@ -61,7 +61,7 @@ services:
6161
ports:
6262
- 26380:26380
6363
volumes:
64-
- "./dockers/sentinel.conf:/redis.conf"
64+
- "./dockers/sentinels/sentinel2.conf:/redis.conf"
6565
profiles:
6666
- sentinel
6767
- all-stack
@@ -76,7 +76,25 @@ services:
7676
ports:
7777
- 26381:26381
7878
volumes:
79-
- "./dockers/sentinel.conf:/redis.conf"
79+
- "./dockers/sentinels/sentinel3.conf:/redis.conf"
80+
profiles:
81+
- sentinel
82+
- all-stack
83+
- all
84+
85+
sentinel-cluster:
86+
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1}
87+
container_name: redis-sentinel-cluster
88+
environment:
89+
- NODES=3
90+
- TLS_ENABLED=yes
91+
- REDIS_CLUSTER=no
92+
- PORT=9121
93+
command: ${REDIS_EXTRA_ARGS:---enable-debug-command yes --enable-module-command yes --tls-auth-clients optional --save ""}
94+
ports:
95+
- "9121-9123:9121-9123"
96+
volumes:
97+
- "./dockers/sentinel-cluster:/redis/work"
8098
profiles:
8199
- sentinel
82100
- all-stack

dockers/sentinel.conf

-5
This file was deleted.

main_test.go

+38-73
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"fmt"
55
"net"
66
"os"
7-
"os/exec"
87
"path/filepath"
98
"strconv"
109
"sync"
@@ -28,12 +27,12 @@ const (
2827

2928
const (
3029
sentinelName = "go-redis-test"
31-
sentinelMasterPort = "9123"
32-
sentinelSlave1Port = "9124"
33-
sentinelSlave2Port = "9125"
34-
sentinelPort1 = "9126"
35-
sentinelPort2 = "9127"
36-
sentinelPort3 = "9128"
30+
sentinelMasterPort = "9121"
31+
sentinelSlave1Port = "9122"
32+
sentinelSlave2Port = "9123"
33+
sentinelPort1 = "26379"
34+
sentinelPort2 = "26380"
35+
sentinelPort3 = "26381"
3736
)
3837

3938
var (
@@ -52,8 +51,8 @@ var (
5251
processes map[string]*redisProcess
5352

5453
ringShard1, ringShard2, ringShard3 *redis.Client
55-
sentinelMaster, sentinelSlave1, sentinelSlave2 *redisProcess
56-
sentinel1, sentinel2, sentinel3 *redisProcess
54+
sentinelMaster, sentinelSlave1, sentinelSlave2 *redis.Client
55+
sentinel1, sentinel2, sentinel3 *redis.Client
5756
)
5857

5958
var cluster = &clusterScenario{
@@ -118,7 +117,7 @@ var _ = BeforeSuite(func() {
118117
}
119118

120119
if !RECluster && !RCEDocker {
121-
sentinelMaster, err = startRedis(sentinelMasterPort)
120+
sentinelMaster, err = connectTo(sentinelMasterPort)
122121
Expect(err).NotTo(HaveOccurred())
123122

124123
sentinel1, err = startSentinel(sentinelPort1, sentinelName, sentinelMasterPort)
@@ -130,15 +129,14 @@ var _ = BeforeSuite(func() {
130129
sentinel3, err = startSentinel(sentinelPort3, sentinelName, sentinelMasterPort)
131130
Expect(err).NotTo(HaveOccurred())
132131

133-
sentinelSlave1, err = startRedis(
134-
sentinelSlave1Port, "--slaveof", "127.0.0.1", sentinelMasterPort)
132+
sentinelSlave1, err = connectTo(sentinelSlave1Port)
135133
Expect(err).NotTo(HaveOccurred())
136-
137-
sentinelSlave2, err = startRedis(
138-
sentinelSlave2Port, "--slaveof", "127.0.0.1", sentinelMasterPort)
134+
err = sentinelSlave1.SlaveOf(ctx, "127.0.0.1", sentinelMasterPort).Err()
139135
Expect(err).NotTo(HaveOccurred())
140136

141-
err = startCluster(ctx, cluster)
137+
sentinelSlave2, err = connectTo(sentinelSlave2Port)
138+
Expect(err).NotTo(HaveOccurred())
139+
err = sentinelSlave2.SlaveOf(ctx, "127.0.0.1", sentinelMasterPort).Err()
142140
Expect(err).NotTo(HaveOccurred())
143141
} else {
144142
redisPort = redisStackPort
@@ -154,6 +152,28 @@ var _ = BeforeSuite(func() {
154152
ringShard3, err = connectTo(ringShard3Port)
155153
Expect(err).NotTo(HaveOccurred())
156154

155+
sentinelMaster, err = connectTo(sentinelMasterPort)
156+
Expect(err).NotTo(HaveOccurred())
157+
158+
sentinel1, err = startSentinel(sentinelPort1, sentinelName, sentinelMasterPort)
159+
Expect(err).NotTo(HaveOccurred())
160+
161+
sentinel2, err = startSentinel(sentinelPort2, sentinelName, sentinelMasterPort)
162+
Expect(err).NotTo(HaveOccurred())
163+
164+
sentinel3, err = startSentinel(sentinelPort3, sentinelName, sentinelMasterPort)
165+
Expect(err).NotTo(HaveOccurred())
166+
167+
sentinelSlave1, err = connectTo(sentinelSlave1Port)
168+
Expect(err).NotTo(HaveOccurred())
169+
err = sentinelSlave1.SlaveOf(ctx, "127.0.0.1", sentinelMasterPort).Err()
170+
Expect(err).NotTo(HaveOccurred())
171+
172+
sentinelSlave2, err = connectTo(sentinelSlave2Port)
173+
Expect(err).NotTo(HaveOccurred())
174+
err = sentinelSlave2.SlaveOf(ctx, "127.0.0.1", sentinelMasterPort).Err()
175+
Expect(err).NotTo(HaveOccurred())
176+
157177
// populate cluster node information
158178
Expect(configureClusterTopology(ctx, cluster)).NotTo(HaveOccurred())
159179
}
@@ -310,15 +330,6 @@ func eventually(fn func() error, timeout time.Duration) error {
310330
}
311331
}
312332

313-
func execCmd(name string, args ...string) (*os.Process, error) {
314-
cmd := exec.Command(name, args...)
315-
if testing.Verbose() {
316-
cmd.Stdout = os.Stdout
317-
cmd.Stderr = os.Stderr
318-
}
319-
return cmd.Process, cmd.Start()
320-
}
321-
322333
func connectTo(port string) (*redis.Client, error) {
323334
client := redis.NewClient(&redis.Options{
324335
Addr: ":" + port,
@@ -379,52 +390,9 @@ func redisDir(port string) (string, error) {
379390
return dir, nil
380391
}
381392

382-
func startRedis(port string, args ...string) (*redisProcess, error) {
383-
dir, err := redisDir(port)
384-
if err != nil {
385-
return nil, err
386-
}
387-
388-
if err := exec.Command("cp", "-f", redisServerConf, dir).Run(); err != nil {
389-
return nil, err
390-
}
391-
392-
baseArgs := []string{filepath.Join(dir, "redis.conf"), "--port", port, "--dir", dir, "--enable-module-command", "yes"}
393-
process, err := execCmd(redisServerBin, append(baseArgs, args...)...)
394-
if err != nil {
395-
return nil, err
396-
}
397-
398-
client, err := connectTo(port)
399-
if err != nil {
400-
process.Kill()
401-
return nil, err
402-
}
403-
404-
p := &redisProcess{process, client}
405-
registerProcess(port, p)
406-
return p, nil
407-
}
408-
409-
func startSentinel(port, masterName, masterPort string) (*redisProcess, error) {
410-
dir, err := redisDir(port)
411-
if err != nil {
412-
return nil, err
413-
}
414-
415-
sentinelConf := filepath.Join(dir, "sentinel.conf")
416-
if err := os.WriteFile(sentinelConf, nil, 0o644); err != nil {
417-
return nil, err
418-
}
419-
420-
process, err := execCmd(redisServerBin, sentinelConf, "--sentinel", "--port", port, "--dir", dir)
421-
if err != nil {
422-
return nil, err
423-
}
424-
393+
func startSentinel(port, masterName, masterPort string) (*redis.Client, error) {
425394
client, err := connectTo(port)
426395
if err != nil {
427-
process.Kill()
428396
return nil, err
429397
}
430398

@@ -438,14 +406,11 @@ func startSentinel(port, masterName, masterPort string) (*redisProcess, error) {
438406
} {
439407
client.Process(ctx, cmd)
440408
if err := cmd.Err(); err != nil {
441-
process.Kill()
442409
return nil, fmt.Errorf("%s failed: %w", cmd, err)
443410
}
444411
}
445412

446-
p := &redisProcess{process, client}
447-
registerProcess(port, p)
448-
return p, nil
413+
return client, nil
449414
}
450415

451416
//------------------------------------------------------------------------------

osscluster_test.go

-14
Original file line numberDiff line numberDiff line change
@@ -226,20 +226,6 @@ func collectNodeInformation(ctx context.Context, scenario *clusterScenario) erro
226226
return nil
227227
}
228228

229-
// startCluster start a cluster
230-
func startCluster(ctx context.Context, scenario *clusterScenario) error {
231-
// Start processes and collect node ids
232-
for _, port := range scenario.ports {
233-
process, err := startRedis(port, "--cluster-enabled", "yes")
234-
if err != nil {
235-
return err
236-
}
237-
scenario.processes[port] = process
238-
}
239-
240-
return configureClusterTopology(ctx, scenario)
241-
}
242-
243229
func assertSlotsEqual(slots, wanted []redis.ClusterSlot) error {
244230
outerLoop:
245231
for _, s2 := range wanted {

0 commit comments

Comments
 (0)