943f724c9dbbba2e71546536314061d0aa6f97ed
[autotest_mk.git] / selftest / unittest / Define.mk
1 ######################################################################
2 # テストテンプレートのディレクトリー
3 ######################################################################
4 # テストグループのMakefileとしてコピーされるファイル
5 GROUP_MAKEFILE = Group.mk
6
7 ######################################################################
8 # テストグループのディレクトリー
9 ######################################################################
10 # グループディレクトリー
11 GROUP_DIR = $(shell pwd)
12
13 # グループ名。ディレクトリ名から取得
14 GROUP = $(notdir $(GROUP_DIR))
15
16 # テスト名。カレントディレクトリー内の、名前が大文字または.以外で始まるディレクトリー
17 TESTS = $(notdir $(shell find -maxdepth 1 -name "[^A-Z.]*" -type d))
18
19 # テストグループとテストの両方で使う変数を定義したファイル
20 DEF_FILE = Define.mk
21
22 # テストのMakefileにインクルードするファイル
23 TEST_MAKEFILE = Test.mk
24
25 # テストグループログファイル
26 GROUP_LOG_FILE = $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]').log
27
28 # 成功したテストの数。テストグループログファイルから取得
29 SUCCESS_TEST = $(shell grep "^[^A-Z.].*: Test Success" $(GROUP_LOG_FILE) | wc -l)
30
31 # 失敗したテストの数。テストグループログファイルから取得
32 FAIL_TEST = $(shell grep "^[^A-Z.].*: Test Failure" $(GROUP_LOG_FILE) | wc -l)
33
34 # すべてのテストの数
35 ALL_TEST = $(shell expr $(SUCCESS_TEST) + $(FAIL_TEST))
36
37 #テストグループ計時ファイル
38 GROUP_TIME_FILE = $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]').log
39
40 ######################################################################
41 # テストのディレクトリー
42 ######################################################################
43 # テスト名。カレントディレクトリー名から取得
44 TEST = $(notdir $(shell pwd))
45
46 # 現在の日時
47 DATE = $(shell date +"%F %T")
48
49 # テストコマンドファイル
50 CMD_FILE = cmd
51
52 # テスト説明ファイル
53 DESC_FILE = desc.txt
54
55 # テスト想定結果ファイル
56 TEST0_FILE = 0.txt
57
58 # テスト結果ファイル
59 TEST1_FILE = 1.txt
60
61 # テストの、想定結果と結果の差分ファイル
62 DIFF_FILE = diff.txt
63
64 # テストエラーファイル
65 ERR_FILE = err.txt
66
67 # テストログファイル
68 LOG_FILE = test.log
69
70 # 実行時間ファイル
71 TIME_FILE = time.log
72
73 ######################################################################
74 # コマンド
75 ######################################################################
76
77 CP := cp
78
79 CAT := cat
80
81 MKDIR := mkdir
82
83 RM := rm -f
84
85 ECHO := echo
86
87 TIME := /usr/bin/time
88
89 DIFF := diff -c
90
91 DEV_NULL := /dev/null
92
93 CHMOD := chmod
94
95 DESC = if test -s $(DESC_FILE); then cat $(DESC_FILE) >>$@; fi;
96
97 # 2ファイルの差分を出力。引数は2ファイル
98 DIFF = diff -c
99
100 # ファイルを実行可能にする。引数は1ファイル
101 CHMOD = chmod u+x
102
103 # テスト実行コマンド。
104 # ファイルの内容と、CMD_FILE実行の標準出力を、ターゲットファイルに保存。
105 # エラー発生時は、エラー出力をターゲットファイルとERR_FILEに保存。
106 # ターゲットファイルは、TEST0_FILEまたはTEST1_FILE
107 CMD = \
108     $(CHMOD) $(CMD_FILE); \
109     $(CAT) $(CMD_FILE) >$@; \
110     ./$(CMD_FILE) >>$@ 2>$(ERR_FILE); \
111     if test -s $(ERR_FILE); then $(CAT) $(ERR_FILE) >>$@; else $(RM) $(ERR_FILE); fi
112
113 # テストの結果をログに出力
114 REPORT_TEST = if test ! -s $^; then $(ECHO) "$(TEST): Test Success $(DATE)"  >>$@; else $(ECHO) "$(TEST): Test Failure $(DATE)" >>$@; fi;