examples/tls_self: simplify the selftest example
authorJunyeon LEE <junyeon2.lee@samsung.com>
Mon, 10 Apr 2017 09:48:28 +0000 (18:48 +0900)
committerHeesub Shin <heesub.shin@samsung.com>
Tue, 18 Apr 2017 03:02:13 +0000 (12:02 +0900)
This commit simplifies the tls selftest example and makes
result printing currectly.

Change-Id: I70cc9156b1f0e57ca6869095db8034b314b1c0df
Signed-off-by: Junyeon LEE <junyeon2.lee@samsung.com>
apps/examples/tls_selftest/tls_selftest_main.c

index e4cfc72..bdb2bde 100644 (file)
 #define TLS_SELFTEST_STACK_SIZE   51200
 #define TLS_SELFTEST_SCHED_POLICY SCHED_RR
 
+
+#define DO_TLS_TEST(func, v)           \
+if((ret = func(v)) != 0) {             \
+       printf("fail %d\n", ret);       \
+       fail_cnt++;                     \
+}
+
 pthread_addr_t tls_selftest_cb(void *args)
 {
+       int fail_cnt = 0;
        int ret = 0;
        int v = 1;
        void *pointer;
@@ -93,154 +101,87 @@ pthread_addr_t tls_selftest_cb(void *args)
        }
 
 #if defined(MBEDTLS_ECP_C)
-       if ((ret = mbedtls_ecp_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_ecp_self_test, v)
 #endif
 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
        mbedtls_memory_buffer_alloc_init(buf, sizeof(buf));
 #endif
 #if defined(MBEDTLS_MD2_C)
-       if ((ret = mbedtls_md2_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_md2_self_test, v);
 #endif
-
 #if defined(MBEDTLS_MD4_C)
-       if ((ret = mbedtls_md4_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_md4_self_test, v);
 #endif
-
 #if defined(MBEDTLS_MD5_C)
-       if ((ret = mbedtls_md5_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_md5_self_test, v);
 #endif
-
 #if defined(MBEDTLS_RIPEMD160_C)
-       if ((ret = mbedtls_ripemd160_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_ripemd160_self_test, v);
 #endif
-
 #if defined(MBEDTLS_SHA1_C)
-       if ((ret = mbedtls_sha1_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_sha1_self_test, v);
 #endif
 #if defined(MBEDTLS_SHA256_C)
-       if ((ret = mbedtls_sha256_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_sha256_self_test, v);
 #endif
-
 #if defined(MBEDTLS_SHA512_C)
-       if ((ret = mbedtls_sha512_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_sha512_self_test, v);
 #endif
-
 #if defined(MBEDTLS_ARC4_C)
-       if ((ret = mbedtls_arc4_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_arc4_self_test, v);
 #endif
-
 #if defined(MBEDTLS_DES_C)
-       if ((ret = mbedtls_des_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_des_self_test, v);
 #endif
-
 #if defined(MBEDTLS_AES_C)
-       if ((ret = mbedtls_aes_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_aes_self_test, v);
 #endif
-
 #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_AES_C)
-       if ((ret = mbedtls_gcm_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_gcm_self_test, v);
 #endif
-
 #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_AES_C)
-       if ((ret = mbedtls_ccm_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_ccm_self_test, v);
 #endif
-
 #if defined(MBEDTLS_BASE64_C)
-       if ((ret = mbedtls_base64_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_base64_self_test, v);
 #endif
-
 #if defined(MBEDTLS_BIGNUM_C)
-       if ((ret = mbedtls_mpi_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_mpi_self_test, v);
 #endif
-
 #if defined(MBEDTLS_RSA_C)
-       if ((ret = mbedtls_rsa_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_rsa_self_test, v);
 #endif
-
 #if defined(MBEDTLS_X509_USE_C)
-       if ((ret = mbedtls_x509_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_x509_self_test, v);
 #endif
 #if defined(MBEDTLS_XTEA_C)
-       if ((ret = mbedtls_xtea_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_xtea_self_test, v);
 #endif
-
 #if defined(MBEDTLS_CAMELLIA_C)
-       if ((ret = mbedtls_camellia_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_camellia_self_test, v);
 #endif
-
 #if defined(MBEDTLS_CTR_DRBG_C)
-       if ((ret = mbedtls_ctr_drbg_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_ctr_drbg_self_test, v);
 #endif
-
 #if defined(MBEDTLS_HMAC_DRBG_C)
-       if ((ret = mbedtls_hmac_drbg_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_hmac_drbg_self_test, v);
 #endif
-
-
 #if defined(MBEDTLS_ECJPAKE_C)
-       if ((ret = mbedtls_ecjpake_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_ecjpake_self_test, v);
 #endif
-
 #if defined(MBEDTLS_DHM_C)
-       if ((ret = mbedtls_dhm_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_dhm_self_test, v);
 #endif
 
-#if defined(MBEDTLS_ENTROPY_C)
-       if ((ret = mbedtls_entropy_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+/*
+ * Without HW entropy, there is no strong entropy source and
+ * it will make failure the selftest.
+ */
+#if defined(MBEDTLS_ENTROPY_C) && defined(CONFIG_HW_RNG)
+       DO_TLS_TEST(mbedtls_entropy_self_test, v);
 #endif
-
 #if defined(MBEDTLS_PKCS5_C)
-       if ((ret = mbedtls_pkcs5_self_test(v)) != 0) {
-               printf("FAIL %d\n", ret);
-       }
+       DO_TLS_TEST(mbedtls_pkcs5_self_test, v);
 #endif
 
        if (v != 0) {
@@ -252,20 +193,16 @@ pthread_addr_t tls_selftest_cb(void *args)
 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
        mbedtls_memory_buffer_alloc_free();
 
-       if ((ret = mbedtls_memory_buffer_alloc_self_test(v)) != 0) {
-               return NULL;
-       }
+       DO_TLS_TEST(mbedtls_memory_buffer_alloc_self_test, v);
 #endif
        if (v != 0) {
-               printf("  [ All tests passed ]\n\n");
+               if(fail_cnt) {
+                       printf("  [ Failed ]\n\n");
+               }
+               else {
+                       printf("  [ All tests passed ]\n\n");
+               }
        }
-       printf("  [ fail ]\n\n");
-
-       sleep(2);
-       if (ret != 0) {
-               printf("FAIL %x\n", ret);
-       }
-
        return NULL;
 }