Skip to content

Commit 18196f5

Browse files
committed
Updated tests for resilientsingle, allowing specific starter modes only
1 parent 8054199 commit 18196f5

18 files changed

+154
-41
lines changed

.travis.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ services:
66
language: go
77

88
env:
9-
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb:3.1
10-
- TEST_SUITE=run-tests-docker ARANGODB=arangodb:3.1
11-
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb/arangodb:latest
12-
- TEST_SUITE=run-tests-docker ARANGODB=arangodb/arangodb:latest
13-
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb/arangodb-preview:latest
14-
- TEST_SUITE=run-tests-docker ARANGODB=arangodb/arangodb-preview:latest
9+
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb:3.1 STARTER_MODES="single,cluster"
10+
- TEST_SUITE=run-tests-docker ARANGODB=arangodb:3.1 STARTER_MODES="single,cluster"
11+
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb/arangodb:latest STARTER_MODES="single,cluster"
12+
- TEST_SUITE=run-tests-docker ARANGODB=arangodb/arangodb:latest STARTER_MODES="single,cluster"
13+
- TEST_SUITE=run-tests-local-process ARANGODB=arangodb/arangodb-preview:latest STARTER_MODES="single,cluster,resilientsingle"
14+
- TEST_SUITE=run-tests-docker ARANGODB=arangodb/arangodb-preview:latest STARTER_MODES="single,cluster,resilientsingle"
1515

1616
script: make $TEST_SUITE
1717

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,16 @@ run-tests-local-process: build test-images
156156
-e DATA_DIR=/tmp \
157157
-e STARTER=/usr/code/bin/linux/amd64/arangodb \
158158
-e TEST_MODES=localprocess \
159+
-e STARTER_MODES=$(STARTER_MODES) \
159160
-e TESTOPTIONS=$(TESTOPTIONS) \
160161
-e DEBUG_CLUSTER=$(DEBUG_CLUSTER) \
161162
-w /usr/code/ \
162163
arangodb-golang \
163164
go test -timeout $(TEST_TIMEOUT) $(TESTOPTIONS) -v $(REPOPATH)/test
164165

165166
run-tests-docker: docker
166-
GOPATH=$(GOBUILDDIR) TEST_MODES=docker IP=$(IP) ARANGODB=$(ARANGODB) go test -timeout $(TEST_TIMEOUT) $(TESTOPTIONS) -v $(REPOPATH)/test
167+
GOPATH=$(GOBUILDDIR) TEST_MODES=docker STARTER_MODES=$(STARTER_MODES) IP=$(IP) ARANGODB=$(ARANGODB) go test -timeout $(TEST_TIMEOUT) $(TESTOPTIONS) -v $(REPOPATH)/test
167168

168169
# Run all integration tests on the local system
169170
run-tests-local: local
170-
GOPATH=$(GOBUILDDIR) TEST_MODES="localprocess docker" STARTER=$(ROOTDIR)/arangodb go test -timeout $(TEST_TIMEOUT) $(TESTOPTIONS) -v $(REPOPATH)/test
171+
GOPATH=$(GOBUILDDIR) TEST_MODES="localprocess,docker" STARTER_MODES=$(STARTER_MODES) STARTER=$(ROOTDIR)/arangodb go test -timeout $(TEST_TIMEOUT) $(TESTOPTIONS) -v $(REPOPATH)/test

service/runtime_server_manager.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ func (s *runtimeServerManager) runArangod(ctx context.Context, log *logging.Logg
234234
what := "cluster"
235235
if serverType == ServerTypeSingle {
236236
what = "single server"
237+
} else if serverType == ServerTypeResilientSingle {
238+
what = "resilient single server"
237239
}
238240
s.logMutex.Lock()
239241
log.Infof("Your %s can now be accessed with a browser at `%s://%s:%d` or", what, urlSchemes.Browser, ip, hostPort)

test/docker_cluster_default_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
// TestDockerClusterDefault runs 3 arangodb starters in docker with default settings.
3434
func TestDockerClusterDefault(t *testing.T) {
3535
needTestMode(t, testModeDocker)
36+
needStarterMode(t, starterModeCluster)
3637
if os.Getenv("IP") == "" {
3738
t.Fatal("IP envvar must be set to IP address of this machine")
3839
}
@@ -134,6 +135,7 @@ func TestDockerClusterDefault(t *testing.T) {
134135
// TestOldDockerClusterDefault runs 3 arangodb starters in docker with default settings.
135136
func TestOldDockerClusterDefault(t *testing.T) {
136137
needTestMode(t, testModeDocker)
138+
needStarterMode(t, starterModeCluster)
137139
if os.Getenv("IP") == "" {
138140
t.Fatal("IP envvar must be set to IP address of this machine")
139141
}

test/docker_cluster_diff_ports_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
// TestDockerClusterDifferentPorts runs 3 arangodb starters in docker with different `--starter.port` values.
3434
func TestDockerClusterDifferentPorts(t *testing.T) {
3535
needTestMode(t, testModeDocker)
36+
needStarterMode(t, starterModeCluster)
3637
if os.Getenv("IP") == "" {
3738
t.Fatal("IP envvar must be set to IP address of this machine")
3839
}

test/docker_cluster_local_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
// TestDockerClusterLocal runs the arangodb starter in docker with `--local`
3434
func TestDockerClusterLocal(t *testing.T) {
3535
needTestMode(t, testModeDocker)
36+
needStarterMode(t, starterModeCluster)
3637
if os.Getenv("IP") == "" {
3738
t.Fatal("IP envvar must be set to IP address of this machine")
3839
}
@@ -88,6 +89,7 @@ func TestDockerClusterLocal(t *testing.T) {
8889
// TestOldDockerClusterLocal runs the arangodb starter in docker with `--local`
8990
func TestOldDockerClusterLocal(t *testing.T) {
9091
needTestMode(t, testModeDocker)
92+
needStarterMode(t, starterModeCluster)
9193
if os.Getenv("IP") == "" {
9294
t.Fatal("IP envvar must be set to IP address of this machine")
9395
}

test/docker_cluster_multi_join_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
// starter addresses as join argument.
3535
func TestDockerClusterMultipleJoins(t *testing.T) {
3636
needTestMode(t, testModeDocker)
37+
needStarterMode(t, starterModeCluster)
3738
if os.Getenv("IP") == "" {
3839
t.Fatal("IP envvar must be set to IP address of this machine")
3940
}

test/docker_resilientsingle_default_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
// and otherwise default settings.
3535
func TestDockerResilientSingleDefault(t *testing.T) {
3636
needTestMode(t, testModeDocker)
37+
needStarterMode(t, starterModeResilientSingle)
3738
if os.Getenv("IP") == "" {
3839
t.Fatal("IP envvar must be set to IP address of this machine")
3940
}
@@ -115,17 +116,18 @@ func TestDockerResilientSingleDefault(t *testing.T) {
115116
"--docker.container=" + cID3,
116117
"--starter.address=$IP",
117118
"--starter.mode=resilientsingle",
119+
"--cluster.start-single=false",
118120
createEnvironmentStarterOptions(),
119121
fmt.Sprintf("--starter.join=$IP:%d", basePort),
120122
}, " "))
121123
defer dockerRun3.Close()
122124
defer removeDockerContainer(t, cID3)
123125

124-
if ok := WaitUntilStarterReady(t, whatCluster, dockerRun1, dockerRun2, dockerRun3); ok {
125-
t.Logf("Cluster start took %s", time.Since(start))
126-
testResilientSingle(t, insecureStarterEndpoint(0), false)
127-
testResilientSingle(t, insecureStarterEndpoint(5), false)
128-
testResilientSingle(t, insecureStarterEndpoint(10), false)
126+
if ok := WaitUntilStarterReady(t, whatResilientSingle, dockerRun1, dockerRun2 /*not docker3*/); ok {
127+
t.Logf("ResilientSingle start took %s", time.Since(start))
128+
testResilientSingle(t, insecureStarterEndpoint(0), false, false)
129+
testResilientSingle(t, insecureStarterEndpoint(5), false, false)
130+
testResilientSingle(t, insecureStarterEndpoint(10), false, true)
129131
}
130132

131133
if isVerbose {

test/docker_resilientsingle_local_test.go

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
// TestDockerResilientSingleLocal runs the arangodb starter in docker with mode `resilientsingle` & `--starter.local`
3434
func TestDockerResilientSingleLocal(t *testing.T) {
3535
needTestMode(t, testModeDocker)
36+
needStarterMode(t, starterModeResilientSingle)
3637
if os.Getenv("IP") == "" {
3738
t.Fatal("IP envvar must be set to IP address of this machine")
3839
}
@@ -76,13 +77,73 @@ func TestDockerResilientSingleLocal(t *testing.T) {
7677
defer dockerRun.Close()
7778
defer removeDockerContainer(t, cID)
7879

79-
if ok := WaitUntilStarterReady(t, whatCluster, dockerRun); ok {
80+
if ok := WaitUntilStarterReady(t, whatResilientSingle, dockerRun); ok {
8081
t.Logf("ResilientSingle start took %s", time.Since(start))
81-
testResilientSingle(t, insecureStarterEndpoint(0), false)
82+
testResilientSingle(t, insecureStarterEndpoint(0), false, false)
8283
}
8384

8485
if isVerbose {
8586
t.Log("Waiting for termination")
8687
}
8788
ShutdownStarter(t, insecureStarterEndpoint(0))
8889
}
90+
91+
// TestDockerResilientSingleLocalSecure runs the arangodb starter in docker with mode `resilientsingle`,
92+
// `--starter.local` & `--ssl.auto-key`
93+
func TestDockerResilientSingleLocalSecure(t *testing.T) {
94+
needTestMode(t, testModeDocker)
95+
needStarterMode(t, starterModeResilientSingle)
96+
if os.Getenv("IP") == "" {
97+
t.Fatal("IP envvar must be set to IP address of this machine")
98+
}
99+
/*
100+
docker volume create arangodb
101+
docker run -i --name=adb --rm -p 8528:8528 \
102+
-v arangodb:/data \
103+
-v /var/run/docker.sock:/var/run/docker.sock \
104+
arangodb/arangodb-starter \
105+
--docker.container=adb \
106+
--starter.address=$IP \
107+
--starter.mode=resilientsingle \
108+
--starter.local
109+
*/
110+
volID := createDockerID("vol-starter-test-local-resilientsingle-secure-")
111+
createDockerVolume(t, volID)
112+
defer removeDockerVolume(t, volID)
113+
114+
// Cleanup of left over tests
115+
removeDockerContainersByLabel(t, "starter-test=true")
116+
removeStarterCreatedDockerContainers(t)
117+
118+
start := time.Now()
119+
120+
cID := createDockerID("starter-test-local-resilientsingle-secure-")
121+
dockerRun := Spawn(t, strings.Join([]string{
122+
"docker run -i",
123+
"--label starter-test=true",
124+
"--name=" + cID,
125+
"--rm",
126+
fmt.Sprintf("-p %d:%d", basePort, basePort),
127+
fmt.Sprintf("-v %s:/data", volID),
128+
"-v /var/run/docker.sock:/var/run/docker.sock",
129+
"arangodb/arangodb-starter",
130+
"--docker.container=" + cID,
131+
"--starter.address=$IP",
132+
"--starter.mode=resilientsingle",
133+
"--starter.local",
134+
"--ssl.auto-key",
135+
createEnvironmentStarterOptions(),
136+
}, " "))
137+
defer dockerRun.Close()
138+
defer removeDockerContainer(t, cID)
139+
140+
if ok := WaitUntilStarterReady(t, whatResilientSingle, dockerRun); ok {
141+
t.Logf("ResilientSingle start took %s", time.Since(start))
142+
testResilientSingle(t, secureStarterEndpoint(0), true, false)
143+
}
144+
145+
if isVerbose {
146+
t.Log("Waiting for termination")
147+
}
148+
ShutdownStarter(t, secureStarterEndpoint(0))
149+
}

test/docker_single_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
// TestDockerSingle runs the arangodb starter in docker with `--starter.mode=single`
3434
func TestDockerSingle(t *testing.T) {
3535
needTestMode(t, testModeDocker)
36+
needStarterMode(t, starterModeSingle)
3637
if os.Getenv("IP") == "" {
3738
t.Fatal("IP envvar must be set to IP address of this machine")
3839
}
@@ -88,6 +89,7 @@ func TestDockerSingle(t *testing.T) {
8889
// TestDockerSingleAutoKeyFile runs the arangodb starter in docker with `--starter.mode=single` && `--ssl.auto-key`
8990
func TestDockerSingleAutoKeyFile(t *testing.T) {
9091
needTestMode(t, testModeDocker)
92+
needStarterMode(t, starterModeSingle)
9193
if os.Getenv("IP") == "" {
9294
t.Fatal("IP envvar must be set to IP address of this machine")
9395
}
@@ -145,6 +147,7 @@ func TestDockerSingleAutoKeyFile(t *testing.T) {
145147
// TestDockerSingleAutoContainerName runs the arangodb starter in docker with `--starter.mode=single` automatic detection of its container name.
146148
func TestDockerSingleAutoContainerName(t *testing.T) {
147149
needTestMode(t, testModeDocker)
150+
needStarterMode(t, starterModeSingle)
148151
if os.Getenv("IP") == "" {
149152
t.Fatal("IP envvar must be set to IP address of this machine")
150153
}
@@ -198,6 +201,7 @@ func TestDockerSingleAutoContainerName(t *testing.T) {
198201
// TestDockerSingleAutoRocksdb runs the arangodb starter in docker with `--server.storage-engine=rocksdb` and a 3.2 image.
199202
func TestDockerSingleAutoRocksdb(t *testing.T) {
200203
needTestMode(t, testModeDocker)
204+
needStarterMode(t, starterModeSingle)
201205
if os.Getenv("IP") == "" {
202206
t.Fatal("IP envvar must be set to IP address of this machine")
203207
}
@@ -256,6 +260,7 @@ func TestDockerSingleAutoRocksdb(t *testing.T) {
256260
// TestOldDockerSingleAutoKeyFile runs the arangodb starter in docker with `--mode=single` && `--sslAutoKeyFile`
257261
func TestOldDockerSingleAutoKeyFile(t *testing.T) {
258262
needTestMode(t, testModeDocker)
263+
needStarterMode(t, starterModeSingle)
259264
if os.Getenv("IP") == "" {
260265
t.Fatal("IP envvar must be set to IP address of this machine")
261266
}

0 commit comments

Comments
 (0)