File: Makefile

package info (click to toggle)
golang-github-checkpoint-restore-go-criu 7.2.0%2Bds1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,796 kB
  • sloc: makefile: 231; ansic: 195; python: 137; sh: 110
file content (66 lines) | stat: -rw-r--r-- 2,114 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
GO ?= go
CRIU ?= criu

all: integration-test e2e-test clean

integration-test: test-imgs crit-test
	@echo "Running integration test"
	@./crit-test

e2e-test: ../../crit/bin/crit test-imgs crit-test.sh
	@echo "Running E2E test"
	@./crit-test.sh

# gen_mmapper_imgs generates CRIU images for mmapper process.
# Parameters:
#   $(1) - Memory size for memory mapping.
#   $(2) - Mmap flags: p - private, s - shared, a - anonymous.
#   $(3) - Directory where the generated images and information will be saved.
define gen_mmapper_imgs
	$(eval MM_PID := $(shell ../mmapper/mmapper $(1) $(2) "/tmp/mmapper-${1}-${2}.log"))
	$(eval MM_DIR := $(3))
	mkdir -p $(MM_DIR)
	cp /proc/$(MM_PID)/environ $(MM_DIR)
	cp /proc/$(MM_PID)/cmdline $(MM_DIR)
	$(CRIU) dump -v4 -o dump.log -D $(MM_DIR) -t $(MM_PID)
endef

test-imgs: ../loop/loop ../mmapper/mmapper
	$(eval LOOP_PID := $(shell ../loop/loop))
	$(eval LOOP_DIR := $@/loop)
	mkdir -p ${LOOP_DIR}
	cp /proc/${LOOP_PID}/environ ${LOOP_DIR}
	cp /proc/${LOOP_PID}/cmdline ${LOOP_DIR}
	$(CRIU) dump -v4 -o dump.log -D ${LOOP_DIR} -t $(LOOP_PID)

	# Generate mmapper CRIU images for different memory mapping scenarios.
	# gen_mmapper_imgs <memory size> <mmap flags> <images dir>
	$(call gen_mmapper_imgs, 257, p, $@/mm_p_257b)
	$(call gen_mmapper_imgs, 257, pa, $@/mm_pa_257b)
	$(call gen_mmapper_imgs, 257, s, $@/mm_s_257b)
	$(call gen_mmapper_imgs, 257, sa, $@/mm_sa_257b)
	$(call gen_mmapper_imgs, 4096, p, $@/mm_p_4kb)
	$(call gen_mmapper_imgs, 4096, pa, $@/mm_pa_4kb)
	$(call gen_mmapper_imgs, 4096, s, $@/mm_s_4kb)
	$(call gen_mmapper_imgs, 4096, sa, $@/mm_sa_4kb)
	$(call gen_mmapper_imgs, 32768, p, $@/mm_p_32kb)
	$(call gen_mmapper_imgs, 32768, pa, $@/mm_pa_32kb)
	$(call gen_mmapper_imgs, 32768, s, $@/mm_s_32kb)
	$(call gen_mmapper_imgs, 32768, sa, $@/mm_sa_32kb)

../../crit/bin/crit:
	$(MAKE) -C ../../crit bin/crit GOFLAGS="${GOFLAGS}"

../loop/loop:
	$(MAKE) -C ../loop

../mmapper/mmapper:
	$(MAKE) -C ../mmapper

crit-test: main.go
	$(GO) build -v -o $@ $^

clean:
	@rm -rf test-imgs crit-test /tmp/mmapper-*.log

.PHONY: all test integration-test e2e-test clean