Skip to content

Commit

Permalink
feat(testing): additional type of integration tests to validate CLI /…
Browse files Browse the repository at this point in the history
… HTTP API
  • Loading branch information
karol-kokoszka committed Feb 13, 2024
1 parent 5d44096 commit 10c4c16
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 3 deletions.
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
testing/
31 changes: 28 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,23 @@ pkg-integration-test:
-u $(CURRENT_UID):$(CURRENT_GID) \
-i --read-only --rm ubuntu integration-test -test.v -test.run $(RUN) $(INTEGRATION_TEST_ARGS) $(SSL_FLAGS) $(ARGS)

.PHONY: api-integration-test
api-integration-test: build-cli clean-server run-server
@echo "==> Running API integration"
@docker build -t scylla-manager-api-tests -f testing/api-tests.Dockerfile .
@docker run --name scylla_manager_server_api_integration \
--network host \
-e "CGO_ENABLED=0" \
-e "GOOD=linux" \
-e "GOCACHE=/tmp/go-build" \
-v "$(PWD):/scylla-manager" \
-w "/scylla-manager" \
-u $(CURRENT_UID):$(CURRENT_GID) \
-i -d --rm scylla-manager-api-tests sleep infinity
@docker exec -it scylla_manager_server_api_integration make build-cli OUTPUT=sctool.api-tests
@docker exec -it scylla_manager_server_api_integration go test -tags api_integration ./pkg/command/... -test.v -test.run IntegrationAPI
@$(MAKE) clean-server

.PHONY: pkg-stress-test
pkg-stress-test: ## Run unit tests for a package in parallel in a loop to detect sporadic failures, requires PKG parameter
pkg-stress-test: RUN=Test
Expand Down Expand Up @@ -179,14 +196,22 @@ deploy-agent: build-agent ## Deploy it to testing containers

.PHONY: build-cli
build-cli: ## Build development cli binary
build-cli: OUTPUT=./sctool.dev
build-cli:
@echo "==> Building sctool"
@go build -trimpath -mod=vendor -o ./sctool.dev ./pkg/cmd/sctool
@go build -trimpath -mod=vendor -o $(OUTPUT) ./pkg/cmd/sctool

.PHONY: build-server
build-server: ## Build development server
@echo "==> Building scylla-manager"
@CGO_ENABLED=0 GOOS=linux go build -trimpath -mod=vendor -o ./scylla-manager.dev ./pkg/cmd/scylla-manager

.PHONY: clean-server
clean-server: ## Remove development server container
@echo "==> Removing (if exists) scylla_manager_server container"
@docker rm -f scylla_manager_server 2> /dev/null || true
@docker rm -f scylla_manager_server_api_integration 2> /dev/null || true

.PHONY: run-server
run-server: build-server ## Build and run development server
@docker run --name "scylla_manager_server" \
Expand All @@ -198,8 +223,8 @@ run-server: build-server ## Build and run development server
-v "$(PWD)/sctool.dev:/usr/bin/sctool:ro" \
-v "$(PWD)/$(MANAGER_CONFIG):/etc/scylla-manager/scylla-manager.yaml:ro" \
-v "/tmp:/tmp" \
-i --read-only --rm scylladb/scylla-manager-dev scylla-manager
@docker network connect scylla_manager_public scylla-manager
-d --read-only --rm scylladb/scylla-manager-dev scylla-manager
@docker network connect scylla_manager_public scylla_manager_server

.PHONY: build
build: build-cli build-agent build-server ## Build all project binaries
Expand Down
5 changes: 5 additions & 0 deletions testing/api-tests.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM golang:1.22.0-alpine

RUN apk --no-cache add make && apk add bash

RUN mkdir /scylla-manager

0 comments on commit 10c4c16

Please sign in to comment.