システムテストの修正
[YACASL2.git] / test / system / casl2 / Define.mk
1 # autotest.mk > test_template > Define.mk
2 # 自動テスト用の変数、マクロ定義
3
4 ifndef DEFINE_INCLUDED
5 DEFINE_INCLUDED = 1
6
7 # 現在の日時
8 DATE = $(shell date +"%F %T")
9
10 # 現在のディレクトリー
11 CURRDIR = $(shell pwd)
12
13 # Makefile
14 MAKEFILE := Makefile
15
16 ######################################################################
17 # コマンド
18 ######################################################################
19
20 CP ?= cp
21
22 CAT ?= cat
23
24 MKDIR ?= mkdir -p
25
26 RM ?= rm -f
27
28 ECHO ?= echo
29
30 TIME ?= time
31
32 DIFF ?= diff -c
33
34 DEV_NULL ?= /dev/null
35
36 CHMOD ?= chmod
37
38 GREP ?= grep
39
40 LINECOUNT ?= wc -l
41
42 FIND ?= find
43
44 TR ?= tr
45
46 EXPR ?= expr
47
48 LN ?= ln -s
49
50 SED ?= sed
51
52 ######################################################################
53 # テストグループとテストでの共通マクロ
54 ######################################################################
55
56 # chk_var_null: 引数がNULLの場合、エラー
57 # 用例: $(call chk_var_null,var)
58 define chk_var_null
59     $(if $1,,$(error NULL argument))
60 endef
61
62 # chk_file_ext: 指定されたファイルが実在する場合、エラー
63 # 用例: $(call chk_file_ext,file)
64 define chk_file_ext
65     $(if $(wildcard $1),$(error $1 exists in $(CURRDIR)))
66 endef
67
68 # 指定したディレクトリーを作成
69 # 引数は、ディレクトリー名
70 # 用例: $(call create_dir,name)
71 define create_dir
72     $(call chk_var_null,$1)
73     $(call chk_file_ext,$1)
74     $(MKDIR) $1
75 endef
76
77 # テストディレクトリーのMakefileを作成
78 # 引数は、Makefile名、依存ファイル群
79 # 用例: $(call create_makefile,file,list_include_file)
80 define create_makefile
81     $(RM) $1
82     $(foreach infile,$2,$(ECHO) "include ../$(infile)" >>$1; )
83     $(if $(filter $(SRC),c),$(call puts_cmd_c,$1))
84 endef
85
86 # C言語の関数をテストするための設定を、指定されたファイルに出力
87 # 引数は、ファイル名
88 # 用例: $(call puts_cmd_c,file)
89 define puts_cmd_c
90     $(ECHO) >>$1
91     $(ECHO) "CC := gcc" >>$1
92     $(ECHO) "CFLAGS := -Wall" >>$1
93     $(ECHO) >>$1
94     $(ECHO) ".INTERMEDIATE:" "$$""(CMD_FILE)" >>$1
95     $(ECHO) >>$1
96     $(ECHO) "CMDSRC_FILE := cmd.c" >>$1
97     $(ECHO) "TESTTARGET_FILES :=       # Set test target files" >>$1
98     $(ECHO) >>$1
99     $(ECHO) "$$""(CMD_FILE):" "$$""(CMDSRC_FILE)" "$$""(TESTTARGET_FILES)" >>$1
100     $(ECHO) "   ""$$""(CC)" "$$""(CFLAGS)" "-o" "$$""@" "$$""^" >>$1
101 endef
102
103 ######################################################################
104 # テストグループのディレクトリー
105 ######################################################################
106
107 # テストグループとテストの変数を定義したMakefile
108 DEFINE_FILE := Define.mk
109
110 # テストのターゲットを定義したMakefile
111 TEST_MAKEFILE := Test.mk
112
113 # すべてのMakefile群
114 MAKEFILES := $(DEFINE_FILE) $(TEST_MAKEFILE)
115
116 # すべてのMakefile群の絶対パス
117 MAKEFILES_ABS := $(foreach file,$(MAKEFILES),$(CURRDIR)/$(file))
118
119 ######################################################################
120 # テストのディレクトリー
121 ######################################################################
122
123 # テストコマンドファイル
124 CMD_FILE := cmd
125
126 # テスト説明ファイル
127 DESC_FILE := desc.txt
128
129 # テスト想定ファイル
130 TEST0_FILE := 0.txt
131
132 # テスト結果ファイル
133 TEST1_FILE := 1.txt
134
135 # テストの、想定結果と結果の差分ファイル
136 DIFF_FILE := diff.log
137
138 # テストエラーファイル
139 ERR_FILE := err.log
140
141 # テストログファイル
142 LOG_FILE := summary.log
143
144 # 実行時間ファイル
145 TIME_FILE := time.log
146
147 # テスト詳細レポートファイル
148 DETAIL_FILE := detail.log
149
150 # テストの結果として作成されるファイル群
151 TEST_RES_FILES := $(TEST1_FILE) $(DIFF_FILE) $(ERR_FILE) $(LOG_FILE) $(DETAIL_FILE) $(TIME_FILE)
152
153 endif