From 245c7ff1b3fdb914a5ec266b2a124af50c52e1b5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 31 May 2012 21:55:21 +0900 Subject: [PATCH] Return nonzero exit status if test fails. Fixed failmalloc tests. --- tests/failmalloc.c | 9 ++++++++- tests/failmalloc_test.c | 4 +++- tests/main.c | 9 ++++++++- tests/spdylay_test_helper.c | 4 +++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tests/failmalloc.c b/tests/failmalloc.c index fd0c63e6..d1781b9c 100644 --- a/tests/failmalloc.c +++ b/tests/failmalloc.c @@ -41,6 +41,7 @@ static int clean_suite1(void) int main(int argc, char* argv[]) { CU_pSuite pSuite = NULL; + unsigned int num_tests_failed; /* initialize the CUnit test registry */ if (CUE_SUCCESS != CU_initialize_registry()) @@ -66,6 +67,12 @@ int main(int argc, char* argv[]) /* Run all tests using the CUnit Basic interface */ CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); + num_tests_failed = CU_get_number_of_tests_failed(); CU_cleanup_registry(); - return CU_get_error(); + if(CU_get_error() == CUE_SUCCESS) { + return num_tests_failed; + } else { + printf("CUnit Error: %s\n", CU_get_error_msg()); + return CU_get_error(); + } } diff --git a/tests/failmalloc_test.c b/tests/failmalloc_test.c index f52be116..e3ccef50 100644 --- a/tests/failmalloc_test.c +++ b/tests/failmalloc_test.c @@ -151,6 +151,7 @@ static ssize_t get_credential_proof(spdylay_session *session, #define TEST_FAILMALLOC_RUN(FUN) \ size_t nmalloc, i; \ \ + spdylay_failmalloc = 0; \ spdylay_nmalloc = 0; \ FUN(); \ nmalloc = spdylay_nmalloc; \ @@ -162,7 +163,8 @@ static ssize_t get_credential_proof(spdylay_session *session, /* printf("i=%zu\n", i); */ \ FUN(); \ /* printf("nmalloc=%d\n", spdylay_nmalloc); */ \ - } + } \ + spdylay_failmalloc = 0; static void run_spdylay_session_send(void) { diff --git a/tests/main.c b/tests/main.c index b65815c7..6f279b51 100644 --- a/tests/main.c +++ b/tests/main.c @@ -52,6 +52,7 @@ static int clean_suite1(void) int main(int argc, char* argv[]) { CU_pSuite pSuite = NULL; + unsigned int num_tests_failed; /* initialize the CUnit test registry */ if (CUE_SUCCESS != CU_initialize_registry()) @@ -223,6 +224,12 @@ int main(int argc, char* argv[]) /* Run all tests using the CUnit Basic interface */ CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); + num_tests_failed = CU_get_number_of_tests_failed(); CU_cleanup_registry(); - return CU_get_error(); + if(CU_get_error() == CUE_SUCCESS) { + return num_tests_failed; + } else { + printf("CUnit Error: %s\n", CU_get_error_msg()); + return CU_get_error(); + } } diff --git a/tests/spdylay_test_helper.c b/tests/spdylay_test_helper.c index 626c5278..2ea7a20e 100644 --- a/tests/spdylay_test_helper.c +++ b/tests/spdylay_test_helper.c @@ -46,7 +46,9 @@ ssize_t unpack_frame_with_nv_block(spdylay_frame_type type, rv = spdylay_zlib_inflate_hd(inflater, &buffer, &in[SPDYLAY_HEAD_LEN + pnvlen], len - SPDYLAY_HEAD_LEN - pnvlen); - CU_ASSERT(rv >= 0); + if(rv < 0) { + return rv; + } switch(type) { case SPDYLAY_SYN_STREAM: rv = spdylay_frame_unpack_syn_stream(&frame->syn_stream,