From 1f29be724106c80abbf386df887b9a07e8d67ce3 Mon Sep 17 00:00:00 2001 From: Mohammad Azim Khan Date: Mon, 20 Mar 2017 22:21:22 +0000 Subject: [PATCH] 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//[/]. The TESTS dir can then be imported into mbed-os to compile tests with mbed-os. --- tests/Makefile | 169 ++++++++++++++++++++++++++++--------------------- 1 file changed, 96 insertions(+), 73 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 975be94a2..a21a0b9a9 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -102,76 +102,75 @@ APPS = test_suite_aes.ecb test_suite_aes.cbc \ 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 @@ $(DEP): 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 @@ all: $(BINARIES) 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/[/]/ +# 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) +