1 # autotest.mk > template > Group.mk
5 # make : すべてのテストを実施し、ログファイルを作成
7 # make create : TESTNAMEで指定されたテストを新規に作成
8 # make set : すべてのテストの、想定結果を出力
9 # make checkeach: すべてのテストを実施
10 # make report : ログファイルから、テストの結果をレポート
11 # make clean : すべてのテストで、"make" で生成されたファイルをクリア
12 # make cleanall: すべてのテストで、"make" と "make set" で生成されたファイルをクリア
14 ######################################################################
16 ######################################################################
21 GROUP_DIR := $(shell pwd)
24 GROUP := $(notdir $(GROUP_DIR))
26 # テスト名。カレントディレクトリー内の、名前が大文字または.以外で始まるディレクトリー
27 TESTS = $(notdir $(shell find -maxdepth 1 -name "[^A-Z.]*" -type d))
30 TEST_LOG_FILES := $(foreach test,$(TESTS),$(test)/$(LOG_FILE))
33 GROUP_LOG_FILE := $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]').log
36 GROUP_REPORT_FILE := Report.log
38 # 成功したテストの数。テストグループログファイルから取得
39 SUCCESS_TEST = $(shell grep "^[^A-Z.].*: Test Success" $(GROUP_LOG_FILE) | wc -l)
41 # 失敗したテストの数。テストグループログファイルから取得
42 FAIL_TEST = $(shell grep "^[^A-Z.].*: Test Failure" $(GROUP_LOG_FILE) | wc -l)
45 ALL_TEST = $(shell expr $(SUCCESS_TEST) + $(FAIL_TEST))
48 TEST_TIME_FILES := $(foreach test,$(TESTS),$(test)/$(TIME_FILE))
51 GROUP_TIME_FILE := $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]')_time.log
53 ######################################################################
55 ######################################################################
57 .PHONY: check report create time clean cleanall
61 report: $(GROUP_REPORT_FILE)
64 $(GROUP_REPORT_FILE): $(GROUP_LOG_FILE)
65 @$(call group_report,$(GROUP),$^,$@)
67 $(GROUP_LOG_FILE): $(TEST_LOG_FILES)
68 @$(call group_log,$^,$@)
71 @$(MAKE) check -sC $(call dir,$@)
74 @$(call create_testdir,$(TEST))
75 @$(call create_testmkfile,$(TEST)/$(MAKEFILE))
77 time: cleantime time_report
79 time_report: $(GROUP_TIME_FILE)
82 $(GROUP_TIME_FILE): $(TEST_TIME_FILES)
83 @$(call group_log,$^,$@)
86 @$(MAKE) time -sC $(call dir,$@)
89 @$(call make_tests,$(TESTS),$@)
90 @$(RM) $(GROUP_TIME_FILE)
93 @$(call make_tests,$(TESTS),$@)
94 @$(RM) $(GROUP_REPORT_FILE) $(GROUP_LOG_FILE)