Make target for on mbed testing
New target gen-mbed-test generates mebdtls tests in mbed-os test format.
i.e. a dir tree like TESTS/<testgroup>/[<sub testgroup>/]<test case>.
The TESTS dir can then be imported into mbed-os to compile tests with mbed-os.
diff --git a/tests/Makefile b/tests/Makefile
index 975be94..a21a0b9 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -102,76 +102,75 @@
BINARIES := $(addsuffix $(EXEXT),$(APPS))
# Look up for associated function files
-func.test_suite_aes.ecb.c := test_suite_aes
-func.test_suite_aes.cbc.c := test_suite_aes
-func.test_suite_aes.cfb.c := test_suite_aes
-func.test_suite_aes.ofb.c := test_suite_aes
-func.test_suite_aes.xts.c := test_suite_aes
-func.test_suite_aes.rest.c := test_suite_aes
-func.test_suite_arc4.c := test_suite_arc4
-func.test_suite_aria.c := test_suite_aria
-func.test_suite_asn1write.c := test_suite_asn1write
-func.test_suite_base64.c := test_suite_base64
-func.test_suite_blowfish.c := test_suite_blowfish
-func.test_suite_camellia.c := test_suite_camellia
-func.test_suite_ccm.c := test_suite_ccm
-func.test_suite_chacha20.c := test_suite_chacha20
-func.test_suite_chachapoly.c := test_suite_chachapoly
-func.test_suite_cmac.c := test_suite_cmac
-func.test_suite_cipher.chachapoly.c := test_suite_cipher
-func.test_suite_cipher.aes.c := test_suite_cipher
-func.test_suite_cipher.arc4.c := test_suite_cipher
-func.test_suite_cipher.ccm.c := test_suite_cipher
-func.test_suite_cipher.chacha20.c := test_suite_cipher
-func.test_suite_cipher.gcm.c := test_suite_cipher
-func.test_suite_cipher.blowfish.c := test_suite_cipher
-func.test_suite_cipher.camellia.c := test_suite_cipher
-func.test_suite_cipher.des.c := test_suite_cipher
-func.test_suite_cipher.null.c := test_suite_cipher
-func.test_suite_cipher.padding.c := test_suite_cipher
-func.test_suite_ctr_drbg.c := test_suite_ctr_drbg
-func.test_suite_debug.c := test_suite_debug
-func.test_suite_des.c := test_suite_des
-func.test_suite_dhm.c := test_suite_dhm
-func.test_suite_ecdh.c := test_suite_ecdh
-func.test_suite_ecdsa.c := test_suite_ecdsa
-func.test_suite_ecjpake.c := test_suite_ecjpake
-func.test_suite_ecp.c := test_suite_ecp
-func.test_suite_error.c := test_suite_error
-func.test_suite_entropy.c := test_suite_entropy
-func.test_suite_gcm.aes128_de.c := test_suite_gcm
-func.test_suite_gcm.aes192_de.c := test_suite_gcm
-func.test_suite_gcm.aes256_de.c := test_suite_gcm
-func.test_suite_gcm.aes128_en.c := test_suite_gcm
-func.test_suite_gcm.aes192_en.c := test_suite_gcm
-func.test_suite_gcm.aes256_en.c := test_suite_gcm
-func.test_suite_gcm.camellia.c := test_suite_gcm
-func.test_suite_hkdf.c := test_suite_hkdf
-func.test_suite_hmac_drbg.misc.c := test_suite_hmac_drbg
-func.test_suite_hmac_drbg.no_reseed.c := test_suite_hmac_drbg
-func.test_suite_hmac_drbg.nopr.c := test_suite_hmac_drbg
-func.test_suite_hmac_drbg.pr.c := test_suite_hmac_drbg
-func.test_suite_md.c := test_suite_md
-func.test_suite_mdx.c := test_suite_mdx
-func.test_suite_memory_buffer_alloc.c := test_suite_memory_buffer_alloc
-func.test_suite_mpi.c := test_suite_mpi
-func.test_suite_nist_kw.c := test_suite_nist_kw
-func.test_suite_pem.c := test_suite_pem
-func.test_suite_pkcs1_v15.c := test_suite_pkcs1_v15
-func.test_suite_pkcs1_v21.c := test_suite_pkcs1_v21
-func.test_suite_pkcs5.c := test_suite_pkcs5
-func.test_suite_pkparse.c := test_suite_pkparse
-func.test_suite_pkwrite.c := test_suite_pkwrite
-func.test_suite_pk.c := test_suite_pk
-func.test_suite_poly1305.c := test_suite_poly1305
-func.test_suite_rsa.c := test_suite_rsa
-func.test_suite_shax.c := test_suite_shax
-func.test_suite_ssl.c := test_suite_ssl
-func.test_suite_timing.c := test_suite_timing
-func.test_suite_x509parse.c := test_suite_x509parse
-func.test_suite_x509write.c := test_suite_x509write
-func.test_suite_xtea.c := test_suite_xtea
-func.test_suite_version.c := test_suite_version
+func.test_suite_aes.ecb := test_suite_aes
+func.test_suite_aes.cbc := test_suite_aes
+func.test_suite_aes.cfb := test_suite_aes
+func.test_suite_aes.ofb := test_suite_aes
+func.test_suite_aes.xts := test_suite_aes
+func.test_suite_aes.rest := test_suite_aes
+func.test_suite_arc4 := test_suite_arc4
+func.test_suite_aria := test_suite_aria
+func.test_suite_asn1write := test_suite_asn1write
+func.test_suite_base64 := test_suite_base64
+func.test_suite_blowfish := test_suite_blowfish
+func.test_suite_camellia := test_suite_camellia
+func.test_suite_ccm := test_suite_ccm
+func.test_suite_chacha20 := test_suite_chacha20
+func.test_suite_chachapoly := test_suite_chachapoly
+func.test_suite_cmac := test_suite_cmac
+func.test_suite_cipher.chachapoly := test_suite_cipher
+func.test_suite_cipher.aes := test_suite_cipher
+func.test_suite_cipher.arc4 := test_suite_cipher
+func.test_suite_cipher.ccm := test_suite_cipher
+func.test_suite_cipher.chacha20 := test_suite_cipher
+func.test_suite_cipher.gcm := test_suite_cipher
+func.test_suite_cipher.blowfish := test_suite_cipher
+func.test_suite_cipher.camellia := test_suite_cipher
+func.test_suite_cipher.des := test_suite_cipher
+func.test_suite_cipher.null := test_suite_cipher
+func.test_suite_cipher.padding := test_suite_cipher
+func.test_suite_ctr_drbg := test_suite_ctr_drbg
+func.test_suite_debug := test_suite_debug
+func.test_suite_des := test_suite_des
+func.test_suite_dhm := test_suite_dhm
+func.test_suite_ecdh := test_suite_ecdh
+func.test_suite_ecdsa := test_suite_ecdsa
+func.test_suite_ecjpake := test_suite_ecjpake
+func.test_suite_ecp := test_suite_ecp
+func.test_suite_error := test_suite_error
+func.test_suite_entropy := test_suite_entropy
+func.test_suite_gcm.aes128_de := test_suite_gcm
+func.test_suite_gcm.aes192_de := test_suite_gcm
+func.test_suite_gcm.aes256_de := test_suite_gcm
+func.test_suite_gcm.aes128_en := test_suite_gcm
+func.test_suite_gcm.aes192_en := test_suite_gcm
+func.test_suite_gcm.aes256_en := test_suite_gcm
+func.test_suite_gcm.camellia := test_suite_gcm
+func.test_suite_hkdf := test_suite_hkdf
+func.test_suite_hmac_drbg.misc := test_suite_hmac_drbg
+func.test_suite_hmac_drbg.no_reseed := test_suite_hmac_drbg
+func.test_suite_hmac_drbg.nopr := test_suite_hmac_drbg
+func.test_suite_hmac_drbg.pr := test_suite_hmac_drbg
+func.test_suite_md := test_suite_md
+func.test_suite_mdx := test_suite_mdx
+func.test_suite_memory_buffer_alloc := test_suite_memory_buffer_alloc
+func.test_suite_mpi := test_suite_mpi
+func.test_suite_nist_kw := test_suite_nist_kw
+func.test_suite_pem := test_suite_pem
+func.test_suite_pkcs1_v15 := test_suite_pkcs1_v15
+func.test_suite_pkcs1_v21 := test_suite_pkcs1_v21
+func.test_suite_pkcs5 := test_suite_pkcs5
+func.test_suite_pkparse := test_suite_pkparse
+func.test_suite_pkwrite := test_suite_pkwrite
+func.test_suite_pk := test_suite_pk
+func.test_suite_rsa := test_suite_rsa
+func.test_suite_shax := test_suite_shax
+func.test_suite_ssl := test_suite_ssl
+func.test_suite_timing := test_suite_timing
+func.test_suite_x509parse := test_suite_x509parse
+func.test_suite_x509write := test_suite_x509write
+func.test_suite_xtea := test_suite_xtea
+func.test_suite_version := test_suite_version
.SILENT:
@@ -185,9 +184,9 @@
C_FILES := $(addsuffix .c,$(APPS))
.SECONDEXPANSION:
-$(C_FILES): %.c: suites/$$(func.$$*.c).function suites/%.data scripts/generate_code.pl suites/helpers.function suites/main_test.function
+$(C_FILES): %.c: suites/$$(func.$$*).function suites/%.data scripts/generate_code.pl suites/helpers.function suites/main_test.function
echo " Gen $@"
- perl scripts/generate_code.pl suites $(func.$@) $*
+ perl scripts/generate_code.pl suites $(func.$*) $*
$(BINARIES): %$(EXEXT): %.c $(DEP)
@@ -200,12 +199,36 @@
clean:
ifndef WINDOWS
- rm -f $(APPS) *.c
+ rm -rf $(APPS) *.c TESTS
else
del /Q /F *.c *.exe
+ rmdir /Q /S TESTS
endif
check: $(BINARIES)
perl scripts/run-test-suites.pl
test: check
+
+# Create separate targets for generating mbed-os tests.
+MBED_APPS := $(addprefix mbed_,$(APPS))
+
+# FIXME: description needs change
+# Each test suite name is stripped off of prefix test_suite_. mbed-os test dir
+# structure requires format TESTS/<testgroup>[/<sub testgroups..>]/<test case>
+# Test app names are split on "." and end part is used as the test dir name.
+# Prevous parts are used as the test group dirs. For tests without "." same
+# name is used as the test group dir.
+
+.SECONDEXPANSION:
+$(MBED_APPS): mbed_%: suites/$$(func.$$*).function suites/%.data scripts/gen_mbed_code.py suites/helpers.function suites/main_test.function
+ echo " Gen ./TESTS/mbedtls/$*/main.c"
+ python scripts/gen_mbed_code.py -f suites/$(func.$*).function \
+ -d suites/$*.data \
+ -t suites/mbed_test.function \
+ -s suites \
+ --help-file suites/helpers.function \
+ -o ./TESTS
+
+gen-mbed-test: $(MBED_APPS)
+