mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-01 09:52:23 -06:00
260 lines
11 KiB
Makefile
260 lines
11 KiB
Makefile
SHELL := bash
|
|
|
|
# define standard colors
|
|
BLACK := $(shell tput -Txterm setaf 0)
|
|
RED := $(shell tput -Txterm setaf 1)
|
|
GREEN := $(shell tput -Txterm setaf 2)
|
|
YELLOW := $(shell tput -Txterm setaf 3)
|
|
LIGHTPURPLE := $(shell tput -Txterm setaf 4)
|
|
PURPLE := $(shell tput -Txterm setaf 5)
|
|
BLUE := $(shell tput -Txterm setaf 6)
|
|
WHITE := $(shell tput -Txterm setaf 7)
|
|
|
|
RESET := $(shell tput -Txterm sgr0)
|
|
|
|
## default values only for sub-make calls
|
|
COMPOSE_FILE ?= src/redis.yml:src/ocis-base.yml:src/acceptance.yml
|
|
|
|
## user input
|
|
BEHAT_FEATURE ?=
|
|
|
|
|
|
ifdef OCIS_IMAGE_TAG
|
|
BUILD_DEV_IMAGE := 0
|
|
else
|
|
BUILD_DEV_IMAGE := 1
|
|
endif
|
|
OCIS_IMAGE_TAG ?= dev
|
|
|
|
# run tests with ociswrapper by default
|
|
WITH_WRAPPER ?= true
|
|
OCIS_WRAPPER := ../../ociswrapper/bin/ociswrapper
|
|
|
|
# static
|
|
DIVIDE_INTO_NUM_PARTS := 10
|
|
PARTS = 1 2 3 4 5 6 7 8 9 10
|
|
LOCAL_API_SUITES = $(shell ls ../features | grep ^api*)
|
|
|
|
COMPOSE_PROJECT_NAME := ocis-acceptance-tests
|
|
|
|
## make definition
|
|
.PHONY: help
|
|
help:
|
|
@echo "Please use 'make <target>' where <target> is one of the following:"
|
|
@echo
|
|
@echo -e "${PURPLE}docs: https://owncloud.dev/ocis/development/testing/#testing-with-test-suite-in-docker${RESET}\n"
|
|
@echo
|
|
@echo -e "oCIS feature tests and test suites can be found here:"
|
|
@echo -e "\thttps://github.com/owncloud/ocis/tree/master/tests/acceptance/features"
|
|
@echo
|
|
@echo -e "test suites that test ownCloud 10 API core compatibility are found here and they start with prefix coreApi-:"
|
|
@echo -e "\thttps://github.com/owncloud/ocis/tree/master/tests/acceptance/features"
|
|
@echo
|
|
@echo -e "The oCIS to be tested will be build from your current working state."
|
|
@echo -e "You also can select the oCIS Docker image for all tests by setting"
|
|
@echo -e "\tmake ... ${YELLOW}OCIS_IMAGE_TAG=latest${RESET}"
|
|
@echo -e "where ${YELLOW}latest${RESET} is an example for any valid Docker image tag from"
|
|
@echo -e "https://hub.docker.com/r/owncloud/ocis."
|
|
@echo
|
|
@echo -e "${GREEN}Run full oCIS test suites against oCIS with oCIS storage:${RESET}\n"
|
|
@echo -e "\tmake localApiTests-apiAccountsHashDifficulty-ocis\t\t${BLUE}run apiAccountsHashDifficulty test suite, where available test suite are apiAccountsHashDifficulty apiArchiver apiContract apiGraph apiSpaces apiSpacesShares apiAsyncUpload apiCors${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run full oCIS test suites against oCIS with s3ng storage:${RESET}\n"
|
|
@echo -e "\tmake localApiTests-apiAccountsHashDifficulty-s3ng\t\t${BLUE}run apiAccountsHashDifficulty test suite, where available test suite are apiAccountsHashDifficulty apiArchiver apiContract apiGraph apiSpaces apiSpacesShares apiAsyncUpload apiCors${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run full ownCloud test suites against oCIS with oCIS storage:${RESET}\n"
|
|
@echo -e "\tmake Core-API-Tests-ocis-storage-${RED}X${RESET}\t\t${BLUE}run test suite number X, where ${RED}X = 1 .. 10${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run full ownCloud test suites against oCIS with s3ng storage:${RESET}\n"
|
|
@echo -e "\tmake Core-API-Tests-s3ng-storage-${RED}X${RESET}\t\t${BLUE}run test suite number X, where ${RED}X = 1 .. 10${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run an oCIS feature test against oCIS with oCIS storage:${RESET}\n"
|
|
@echo -e "\tmake test-ocis-feature-ocis-storage ${YELLOW}BEHAT_FEATURE='...'${RESET}\t${BLUE}run single feature test${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/apiAccountsHashDifficulty/addUser.feature${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run an oCIS feature test against oCIS with s3ng storage:${RESET}\n"
|
|
@echo -e "\tmake test-ocis-feature-s3ng-storage ${YELLOW}BEHAT_FEATURE='...'${RESET}\t${BLUE}run single feature test${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/apiAccountsHashDifficulty/addUser.feature${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/apiAccountsHashDifficulty/addUser.feature${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run an ownCloud feature test against oCIS with oCIS storage:${RESET}\n"
|
|
@echo -e "\tmake test-core-feature-ocis-storage ${YELLOW}BEHAT_FEATURE='...'${RESET}\t${BLUE}run single feature test${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/coreApiAuth/webDavAuth.feature${RESET}"
|
|
@echo
|
|
@echo -e "${GREEN}Run an ownCloud feature test against oCIS with s3ng storage:${RESET}\n"
|
|
@echo -e "\tmake test-core-feature-s3ng-storage ${YELLOW}BEHAT_FEATURE='...'${RESET}\t${BLUE}run single feature test${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/coreApiAuth/webDavAuth.feature${RESET}"
|
|
@echo
|
|
@echo -e "\twhere ${YELLOW}BEHAT_FEATURE='...'${RESET} contains a relative path to the feature definition."
|
|
@echo -e "\texample: ${RED}tests/acceptance/features/coreApiAuth/webDavAuth.feature${RESET}"
|
|
@echo
|
|
@echo
|
|
@echo -e "${GREEN}Show output of tests:${RESET}\n"
|
|
@echo -e "\tmake show-test-logs\t\t${BLUE}show output of running or finished tests${RESET}"
|
|
@echo
|
|
@echo
|
|
@echo -e "${GREEN}Clean up after testing:${RESET}\n"
|
|
@echo -e "\tmake clean\t${BLUE}clean up all${RESET}"
|
|
@echo -e "\tmake clean-docker-container\t\t${BLUE}stops and removes used docker containers${RESET}"
|
|
@echo -e "\tmake clean-docker-volumes\t\t${BLUE}removes used docker volumes (used for caching)${RESET}"
|
|
@echo
|
|
.PHONY: test-ocis-feature-ocis-storage
|
|
test-ocis-feature-ocis-storage: ## test a ocis feature with oCIS storage, usage: make ... BEHAT_FEATURE='tests/acceptance/features/apiAccountsHashDifficulty/addUser.feature:10'
|
|
@TEST_SOURCE=ocis \
|
|
STORAGE_DRIVER=ocis \
|
|
BEHAT_FEATURE=$(BEHAT_FEATURE) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
.PHONY: test-ocis-feature-s3ng-storage
|
|
test-ocis-feature-s3ng-storage: ## test a ocis feature with s3ng storage, usage: make ... BEHAT_FEATURE='tests/acceptance/features/apiAccountsHashDifficulty/addUser.feature:10'
|
|
@TEST_SOURCE=ocis \
|
|
STORAGE_DRIVER=s3ng \
|
|
BEHAT_FEATURE=$(BEHAT_FEATURE) \
|
|
START_CEPH=1 \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
.PHONY: test-core-feature-ocis-storage
|
|
test-core-feature-ocis-storage: ## test a core feature with oCIS storage, usage: make ... BEHAT_FEATURE='tests/acceptance/features/coreApiAuth/webDavAuth.feature'
|
|
@TEST_SOURCE=oc10 \
|
|
STORAGE_DRIVER=ocis \
|
|
BEHAT_FEATURE=$(BEHAT_FEATURE) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
.PHONY: test-core-feature-s3ng-storage
|
|
test-core-feature-s3ng-storage: ## test a core feature with s3ng storage, usage: make ... BEHAT_FEATURE='tests/acceptance/features/coreApiAuth/webDavAuth.feature'
|
|
@TEST_SOURCE=oc10 \
|
|
STORAGE_DRIVER=s3ng \
|
|
BEHAT_FEATURE=$(BEHAT_FEATURE) \
|
|
START_CEPH=1 \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
localSuiteOcis = $(addprefix localApiTests-, $(addsuffix -ocis,${LOCAL_API_SUITES}))
|
|
.PHONY: $(localSuiteOcis)
|
|
$(localSuiteOcis): ## run local api test suite with ocis storage
|
|
@$(eval BEHAT_SUITE=$(shell echo "$@" | cut -d'-' -f2))
|
|
@TEST_SOURCE=ocis \
|
|
STORAGE_DRIVER=ocis \
|
|
BEHAT_SUITE=$(BEHAT_SUITE) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
localSuites3ng = $(addprefix localApiTests-, $(addsuffix -s3ng,${LOCAL_API_SUITES}))
|
|
.PHONY: $(localSuites3ng)
|
|
$(localSuites3ng): ## run local api test suite with s3 storage
|
|
@$(eval BEHAT_SUITE=$(shell echo "$@" | cut -d'-' -f2))
|
|
@TEST_SOURCE=ocis \
|
|
STORAGE_DRIVER=s3ng \
|
|
BEHAT_SUITE=$(BEHAT_SUITE) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
targetsOCIS = $(addprefix Core-API-Tests-ocis-storage-,$(PARTS))
|
|
.PHONY: $(targetsOCIS)
|
|
$(targetsOCIS):
|
|
@$(eval RUN_PART=$(shell echo "$@" | tr -dc '0-9'))
|
|
@TEST_SOURCE=oc10 \
|
|
STORAGE_DRIVER=ocis \
|
|
RUN_PART=$(RUN_PART) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
targetsS3ng = $(addprefix Core-API-Tests-s3ng-storage-,$(PARTS))
|
|
.PHONY: $(targetsS3ng)
|
|
$(targets):
|
|
@$(eval RUN_PART=$(shell echo "$@" | tr -dc '0-9'))
|
|
@TEST_SOURCE=oc10 \
|
|
STORAGE_DRIVER=s3ng \
|
|
RUN_PART=$(RUN_PART) \
|
|
$(MAKE) --no-print-directory testSuite
|
|
|
|
.PHONY: testSuite
|
|
testSuite: $(OCIS_WRAPPER) build-dev-image clean-docker-container
|
|
@if [ -n "${START_CEPH}" ]; then \
|
|
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=src/ceph.yml \
|
|
docker-compose run start_ceph; \
|
|
fi; \
|
|
if [ "${START_EMAIL}" == "true" ]; then \
|
|
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=src/email.yml \
|
|
docker-compose run start_email; \
|
|
fi; \
|
|
if [ "${START_ANTIVIRUS}" == "true" ]; then \
|
|
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=src/antivirus.yml \
|
|
docker-compose run start_antivirus; \
|
|
fi; \
|
|
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=$(COMPOSE_FILE) \
|
|
STORAGE_DRIVER=$(STORAGE_DRIVER) \
|
|
TEST_SOURCE=$(TEST_SOURCE) \
|
|
WITH_WRAPPER=$(WITH_WRAPPER) \
|
|
OCIS_ASYNC_UPLOADS=$(OCIS_ASYNC_UPLOADS) \
|
|
OCIS_ADD_RUN_SERVICES=$(OCIS_ADD_RUN_SERVICES) \
|
|
POSTPROCESSING_STEPS=$(POSTPROCESSING_STEPS) \
|
|
OCIS_IMAGE_TAG=$(OCIS_IMAGE_TAG) \
|
|
BEHAT_SUITE=$(BEHAT_SUITE) \
|
|
BEHAT_FEATURE=$(BEHAT_FEATURE) \
|
|
DIVIDE_INTO_NUM_PARTS=$(DIVIDE_INTO_NUM_PARTS) \
|
|
RUN_PART=$(RUN_PART) \
|
|
docker-compose up -d --build --force-recreate
|
|
|
|
.PHONY: show-test-logs
|
|
show-test-logs: ## show logs of test
|
|
@COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=$(COMPOSE_FILE) \
|
|
docker-compose logs --no-log-prefix -f acceptance-tests | less
|
|
|
|
$(OCIS_WRAPPER):
|
|
@if [ "$(WITH_WRAPPER)" == "true" ]; then \
|
|
$(MAKE) --no-print-directory -C ../../ociswrapper build \
|
|
; fi;
|
|
|
|
.PHONY: build-dev-image
|
|
build-dev-image:
|
|
@if [ $(BUILD_DEV_IMAGE) -eq 1 ]; then \
|
|
$(MAKE) --no-print-directory -C ../../../ocis dev-docker \
|
|
; fi;
|
|
|
|
.PHONY: clean-dev-docker-image
|
|
clean-dev-docker-image: ## clean docker image built during acceptance tests
|
|
@docker image rm owncloud/ocis:dev || true
|
|
|
|
.PHONY: clean-docker-container
|
|
clean-docker-container: ## clean docker containers created during acceptance tests
|
|
@COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=$(COMPOSE_FILE) \
|
|
BEHAT_SUITE="" \
|
|
DIVIDE_INTO_NUM_PARTS="" \
|
|
OCIS_IMAGE_TAG="" \
|
|
RUN_PART="" \
|
|
STORAGE_DRIVER="" \
|
|
TEST_SOURCE="" \
|
|
docker-compose down --remove-orphans
|
|
|
|
.PHONY: clean-docker-volumes
|
|
clean-docker-volumes: ## clean docker volumes created during acceptance tests
|
|
@COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
|
COMPOSE_FILE=$(COMPOSE_FILE) \
|
|
BEHAT_SUITE="" \
|
|
DIVIDE_INTO_NUM_PARTS="" \
|
|
OCIS_IMAGE_TAG="" \
|
|
RUN_PART="" \
|
|
STORAGE_DRIVER="" \
|
|
TEST_SOURCE="" \
|
|
docker-compose down --remove-orphans -v
|
|
|
|
.PHONY: clean-files
|
|
clean-files:
|
|
@$(MAKE) --no-print-directory -C ../../../. clean-tests
|
|
|
|
.PHONY: clean
|
|
clean: clean-docker-container clean-docker-volumes clean-dev-docker-image clean-files ## clean all
|