2021-01-18 17:59:51 +00:00
|
|
|
SHELL = /bin/bash
|
|
|
|
|
|
|
|
.PHONY: test
|
|
|
|
|
|
|
|
# these tests run in isolation by calling go test -run=... or the equivalent.
|
2021-01-18 22:15:47 +00:00
|
|
|
ISOLATED_TESTS +=
|
|
|
|
ifdef CI
|
|
|
|
ISOLATED_TESTS = TestControl_Isolated \
|
|
|
|
TestSystemDriven_Isolated \
|
|
|
|
TestHeapDriven_Isolated
|
|
|
|
else
|
|
|
|
ISOLATED_TESTS = TestControl_Isolated \
|
|
|
|
TestSystemDriven_Isolated \
|
|
|
|
TestHeapDriven_Isolated \
|
|
|
|
TestCgroupsDriven_Create_Isolated \
|
|
|
|
TestCgroupsDriven_Docker_Isolated
|
|
|
|
endif
|
2021-01-18 17:59:51 +00:00
|
|
|
|
|
|
|
test: test-binary test-docker
|
|
|
|
|
|
|
|
test-binary:
|
|
|
|
go test -v ./... # run all the non-isolated tests.
|
|
|
|
# foreach does not actually execute each iteration; it expands the text, and it's executed all at once
|
|
|
|
# that's why we use && true, to shorcircuit if a test fails.
|
|
|
|
$(foreach name,$(ISOLATED_TESTS),TEST_ISOLATED=1 go test -v -test.run=$(name) ./... && ) true
|
|
|
|
|
|
|
|
test-docker: docker
|
|
|
|
docker run --memory=32MiB --memory-swap=32MiB -e TEST_DOCKER_MEMLIMIT=33554432 raulk/watchdog:latest
|
|
|
|
$(foreach name,$(ISOLATED_TESTS),docker run \
|
|
|
|
--memory=32MiB --memory-swap=32MiB \
|
|
|
|
-e TEST_ISOLATED=1 \
|
|
|
|
-e TEST_DOCKER_MEMLIMIT=33554432 \
|
|
|
|
raulk/watchdog:latest /root/watchdog.test -test.v -test.run=$(name) ./... && ) true
|
|
|
|
|
|
|
|
docker:
|
|
|
|
docker build -f ./Dockerfile.test -t raulk/watchdog:latest .
|