Makefile: Add security compiling option (RELRO, SC, and FORTIFY)
[platform/upstream/cryptsetup.git] / tests / Makefile.am
1 TESTS = 00modules-test \
2         api-test \
3         api-test-2 \
4         compat-args-test \
5         compat-test \
6         compat-test2 \
7         loopaes-test \
8         align-test \
9         align-test2 \
10         discards-test \
11         mode-test \
12         password-hash-test \
13         tcrypt-compat-test \
14         luks1-compat-test \
15         device-test \
16         keyring-test \
17         keyring-compat-test \
18         luks2-validation-test \
19         luks2-integrity-test \
20         vectors-test \
21         blockwise-compat-test \
22         bitlk-compat-test \
23         fvault2-compat-test \
24         run-all-symbols \
25         unit-utils-crypt-test \
26         unit-wipe-test \
27         reencryption-compat-test \
28         luks2-reencryption-test \
29         luks2-reencryption-mangle-test
30
31 if VERITYSETUP
32 TESTS += verity-compat-test
33 endif
34
35 if INTEGRITYSETUP
36 TESTS += integrity-compat-test
37 endif
38
39 if SSHPLUGIN_TOKEN
40 TESTS += ssh-test-plugin
41 endif
42
43 if EXTERNAL_TOKENS
44 TESTS += systemd-test-plugin
45 endif
46
47 ssh-test-plugin: fake_token_path.so
48 systemd-test-plugin: fake_token_path.so fake_systemd_tpm_path.so
49
50 # Do not use global CFLAGS here as the *.so link does not support sanitizers
51 fake_token_path.so: fake_token_path.c
52         $(CC) $(LDFLAGS) -I $(top_srcdir)/lib -fPIC -shared -D_GNU_SOURCE \
53         -Wl,--version-script=$(top_srcdir)/lib/libcryptsetup.sym \
54         -o fake_token_path.so  $(top_srcdir)/tests/fake_token_path.c \
55         -DBUILD_DIR=\"$(abs_top_srcdir)/.libs/\"
56
57 fake_systemd_tpm_path.so: fake_systemd_tpm_path.c
58         $(CC) $(LDFLAGS) -fPIC -shared -D_GNU_SOURCE -o fake_systemd_tpm_path.so \
59         $(top_srcdir)/tests/fake_systemd_tpm_path.c
60
61 EXTRA_DIST = compatimage.img.xz compatv10image.img.xz \
62         compatimage2.img.xz \
63         conversion_imgs.tar.xz \
64         luks2_keyslot_unassigned.img.xz \
65         img_fs_ext4.img.xz img_fs_vfat.img.xz img_fs_xfs.img.xz \
66         xfs_512_block_size.img.xz \
67         valid_header_file.xz \
68         luks2_valid_hdr.img.xz \
69         luks2_header_requirements.tar.xz \
70         luks2_mda_images.tar.xz \
71         evil_hdr-payload_overwrite.xz \
72         evil_hdr-stripes_payload_dmg.xz \
73         evil_hdr-luks_hdr_damage.xz \
74         evil_hdr-small_luks_device.xz \
75         evil_hdr-keyslot_overlap.xz \
76         tcrypt-images.tar.xz \
77         luks1-images.tar.xz \
78         00modules-test \
79         compat-args-test \
80         compat-test \
81         compat-test2 \
82         loopaes-test align-test discards-test mode-test password-hash-test \
83         align-test2 verity-compat-test \
84         reencryption-compat-test \
85         luks2-reencryption-test \
86         luks2-reencryption-mangle-test \
87         tcrypt-compat-test \
88         luks1-compat-test \
89         luks2-validation-test generators \
90         luks2-integrity-test \
91         device-test \
92         keyring-test \
93         keyring-compat-test \
94         integrity-compat-test \
95         cryptsetup-valg-supps valg.sh valg-api.sh \
96         blockwise-compat-test \
97         blkid-luks2-pv.img.xz \
98         Makefile.localtest \
99         bitlk-compat-test \
100         bitlk-images.tar.xz \
101         fvault2-compat-test \
102         fvault2-images.tar.xz \
103         ssh-test-plugin \
104         generate-symbols-list \
105         run-all-symbols \
106         fake_token_path.c \
107         fake_systemd_tpm_path.c \
108         unit-wipe-test \
109         systemd-test-plugin
110
111 CLEANFILES = cryptsetup-tst* valglog* *-fail-*.log test-symbols-list.h fake_token_path.so fake_systemd_tpm_path.so
112 clean-local:
113         -rm -rf tcrypt-images luks1-images luks2-images bitlk-images fvault2-images conversion_imgs luks2_valid_hdr.img blkid-luks2-pv-img blkid-luks2-pv-img.bcp external-tokens
114
115 differ_SOURCES = differ.c
116 differ_CFLAGS = $(AM_CFLAGS) -Wall -O2
117
118 api_test_SOURCES = api-test.c api_test.h test_utils.c
119 api_test_LDADD = ../libcryptsetup.la
120 api_test_LDFLAGS = $(AM_LDFLAGS) -static
121 api_test_CFLAGS = -g -Wall -O0 $(AM_CFLAGS) -I$(top_srcdir)/lib
122 api_test_CPPFLAGS = $(AM_CPPFLAGS) -include config.h
123
124 api_test_2_SOURCES = api-test-2.c api_test.h test_utils.c
125 api_test_2_LDADD = ../libcryptsetup.la
126 api_test_2_LDFLAGS = $(AM_LDFLAGS) -static
127 api_test_2_CFLAGS = -g -Wall -O0 $(AM_CFLAGS) -I$(top_srcdir)/lib
128 api_test_2_CPPFLAGS = $(AM_CPPFLAGS) -include config.h
129
130 vectors_test_SOURCES = crypto-vectors.c
131 vectors_test_LDADD = ../libcrypto_backend.la @CRYPTO_LIBS@ @LIBARGON2_LIBS@
132 vectors_test_LDFLAGS = $(AM_LDFLAGS) -static
133 vectors_test_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/lib @CRYPTO_CFLAGS@
134 vectors_test_CPPFLAGS = $(AM_CPPFLAGS) -include config.h
135
136 unit_utils_io_SOURCES = unit-utils-io.c
137 unit_utils_io_LDADD = ../libutils_io.la
138 unit_utils_io_LDFLAGS = $(AM_LDFLAGS) -static
139 unit_utils_io_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/lib
140 unit_utils_io_CPPFLAGS = $(AM_CPPFLAGS) -include config.h
141
142 unit_utils_crypt_test_SOURCES = unit-utils-crypt.c ../lib/utils_crypt.c ../lib/utils_crypt.h
143 unit_utils_crypt_test_LDADD = ../libcryptsetup.la
144 unit_utils_crypt_test_LDFLAGS = $(AM_LDFLAGS) -static
145 unit_utils_crypt_test_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/lib
146 unit_utils_crypt_test_CPPFLAGS = $(AM_CPPFLAGS) -include config.h
147
148 unit_wipe_SOURCES = unit-wipe.c
149 unit_wipe_LDADD = ../libcryptsetup.la
150 unit_wipe_LDFLAGS = $(AM_LDFLAGS) -static
151 unit_wipe_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/lib
152 unit_wipe_CPPFLAGS = $(AM_CPPFLAGS)
153
154 BUILT_SOURCES = test-symbols-list.h
155
156 test-symbols-list.h: $(top_srcdir)/lib/libcryptsetup.sym generate-symbols-list
157         $(srcdir)/generate-symbols-list $(top_srcdir)/lib/libcryptsetup.sym > $(builddir)/test-symbols-list.h
158
159 all_symbols_test_SOURCES = all-symbols-test.c
160 nodist_all_symbols_test_SOURCES = test-symbols-list.h
161 all_symbols_test.$(OBJEXT): test-symbols-list.h
162 all_symbols_test_LDFLAGS = $(AM_LDFLAGS) -ldl
163 all_symbols_test_CFLAGS = $(AM_CFLAGS)
164 all_symbols_test_CPPFLAGS = $(AM_CPPFLAGS) -D_GNU_SOURCE
165
166 check_PROGRAMS = api-test api-test-2 differ vectors-test unit-utils-io unit-utils-crypt-test unit-wipe all-symbols-test
167
168 check-programs: test-symbols-list.h $(check_PROGRAMS) fake_token_path.so fake_systemd_tpm_path.so
169
170 conversion_imgs:
171         @tar xJf conversion_imgs.tar.xz
172
173 compatimage.img:
174         @xz -k -d compatimage.img.xz
175
176 valgrind-check: api-test api-test-2 differ
177         @VALG=1 ./compat-args-test
178         @VALG=1 ./compat-test
179         @VALG=1 ./compat-test2
180         @VALG=1 ./luks2-validation-test
181         @VALG=1 ./verity-compat-test
182         @VALG=1 ./integrity-compat-test
183         @INFOSTRING="api-test-000" ./valg-api.sh ./api-test
184         @INFOSTRING="api-test-002" ./valg-api.sh ./api-test-2
185         @VALG=1 ./luks2-reencryption-test
186         @VALG=1 ./luks2-reencryption-mangle-test
187         @VALG=1 ./bitlk-compat-test
188         @VALG=1 ./tcrypt-compat-test
189         @VALG=1 ./align-test
190         @VALG=1 ./align-test2
191         @VALG=1 ./device-test
192         @VALG=1 ./discards-test
193         @VALG=1 ./keyring-compat-test
194         @VALG=1 ./loopaes-test
195         @VALG=1 ./luks1-compat-test
196         @VALG=1 ./luks2-integrity-test
197         @VALG=1 ./mode-test
198         @VALG=1 ./password-hash-test
199         @VALG=1 ./reencryption-compat-test
200         @VALG=1 ./fvault2-compat-test
201         @[ -z "$RUN_SSH_PLUGIN_TEST" ] || VALG=1 ./ssh-test-plugin
202         @INFOSTRING="unit-utils-crypt-test" ./valg-api.sh ./unit-utils-crypt-test
203         @INFOSTRING="vectors-test" ./valg-api.sh ./vectors-test
204         @grep -l "ERROR SUMMARY: [^0][0-9]* errors" valglog* || echo "No leaks detected."
205
206 .PHONY: valgrind-check