1 # autotest.mk > test_template > Define.mk
7 # シェルコマンドをデバッグするときは、DEBUGSH変数を設定してmakeを実行する
14 DATE = $(shell date +"%F %T")
19 ######################################################################
21 ######################################################################
30 FILE := file -b -e ascii
44 VALGRIND_LOGFILE := _valgrind.log
45 VALGRINDFLAG := -q --leak-check=full --show-leak-kinds=all --log-file=$(VALGRIND_LOGFILE)
46 VALGRIND_CMDLOGFILE := valgrind.log
48 ######################################################################
50 ######################################################################
52 # chk_var_null: 引数がNULLの場合、エラー
53 # 用例: $(call chk_var_null,var)
55 $(if $1,,$(error NULL argument))
58 # chk_file_ext: 指定されたファイルが実在する場合、エラー
59 # 用例: $(call chk_file_ext,file)
61 $(if $(wildcard $1),$(error $1 exists in $(CURDIR)))
66 # 用例: $(call create_dir,name)
68 $(call chk_var_null,$1)
69 $(call chk_file_ext,$1)
76 # 用例: $(call rel_to,file1,file2)
78 $(strip $(shell $(REALPATH) --relative-to=$1 $2))
81 # テストディレクトリーのMakefileを作成
82 # 引数は、Makefile名、依存ファイル群
83 # 用例: $(call create_makefile,file,list_include_file)
84 define create_makefile
86 $(foreach infile,$2,$(ECHO) "include ../$(infile)" >>$1; )
87 $(if $(filter $(SRC),c),$(call puts_cmd_c,$1))
90 # C言語の関数をテストするための設定を、指定されたファイルに出力
92 # 用例: $(call puts_cmd_c,file)
95 $(ECHO) "CC := gcc" >>$1
96 $(ECHO) "CFLAGS := -Wall" >>$1
98 $(ECHO) ".INTERMEDIATE:" "$$""(CMD_FILE)" >>$1
100 $(ECHO) "CMDSRC_FILE := cmd.c" >>$1
101 $(ECHO) "TESTTARGET_FILES := # Set test target files" >>$1
103 $(ECHO) "$$""(CMD_FILE):" "$$""(CMDSRC_FILE)" "$$""(TESTTARGET_FILES)" >>$1
104 $(ECHO) " ""$$""(CC)" "$$""(CFLAGS)" "-o" "$$""@" "$$""^" >>$1
107 ######################################################################
109 ######################################################################
111 # テストグループとテストの変数を定義したMakefile
112 DEFINE_FILE := Define.mk
114 # テストのターゲットを定義したMakefile
115 TEST_MAKEFILE := Test.mk
117 # テストグループのMakefileとしてコピーされるファイル
118 GROUP_MAKEFILE := Group.mk
121 DEFINE_FILE_REL = $(call rel_to,$(GROUPDIR),$(DEFINE_FILE))
124 TEST_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(TEST_MAKEFILE))
126 # GROUP_MAKEFILEの相対パス
127 GROUP_MAKEFILE_REL = $(call rel_to,$(GROUPDIR),$(GROUP_MAKEFILE))
129 ######################################################################
131 ######################################################################
136 # valgrindテストコマンドファイル
137 VALGRIND_CMD_FILE := cmd_valgrind
140 DESC_FILE := desc.txt
148 # テストの、想定結果と結果の差分ファイル
149 DIFF_FILE := diff.log
155 LOG_FILE := summary.log
158 TIME_FILE := time.log
160 # valgrindによるメモリーチェックファイル
161 VALGRIND_FILE := valgrind.log
164 DETAIL_FILE := detail.log
166 # テストの結果として作成されるファイル群
167 TEST_RES_FILES := $(TEST1_FILE) $(DIFF_FILE) $(ERR_FILE) $(LOG_FILE) $(DETAIL_FILE) $(TIME_FILE)