master
text 33 lines 939 Bytes
Raw
1 # This Makefile provides a way to really simple way to run benchmarks in a
2 # docker environment.
3
4 IPFS_ROOT = ../..
5 CONTAINER = go-ipfs-bench
6 PACKAGE = integrationtest
7 PACKAGE_DIR = test/integration
8 BUILD_DIR = ./build/bench
9 CONTAINER_WORKING_DIR = /go
10 CPU_PROF_NAME = cpu.out
11 EXTRA_TEST_ARGS =
12
13 all: collect
14
15 collect: clean build_image run_profiler cp_pprof_from_container
16
17 cp_pprof_from_container:
18 docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(CPU_PROF_NAME) $(BUILD_DIR)
19 docker cp $(CONTAINER):$(CONTAINER_WORKING_DIR)/$(PACKAGE).test $(BUILD_DIR)
20
21 build_image:
22 cd $(IPFS_ROOT) && docker build -t $(IMAGE) .
23
24 run_profiler:
25 docker run --name $(CONTAINER) -it --entrypoint go $(IMAGE) test ./src/github.com/ipfs/go-ipfs/$(PACKAGE_DIR) --cpuprofile=$(CPU_PROF_NAME) $(EXTRA_TEST_ARGS)
26
27
28 clean:
29 docker rm $(CONTAINER) || true
30 rm -rf $(BUILD_DIR)
31
32 analyze:
33 go tool pprof $(BUILD_DIR)/$(PACKAGE).test $(BUILD_DIR)/$(CPU_PROF_NAME)