From d33aabf7ac95bc292ca195b331fd7f04143f254d Mon Sep 17 00:00:00 2001 From: Niklas Hauser Date: Mon, 21 Mar 2016 14:45:20 +0000 Subject: [PATCH] Handle failure to schedule callback asynchronously. --- "frameworks\\utest/source/harness.cpp" | 4 ++++ "frameworks\\utest/source/types.cpp" | 3 +++ "frameworks\\utest/utest/types.h" | 1 + 3 files changed, 8 insertions(+) diff --git "a/frameworks\\utest/source/harness.cpp" "b/frameworks\\utest/source/harness.cpp" index d66815b184..a5c7420e48 100644 --- "a/frameworks\\utest/source/harness.cpp" +++ "b/frameworks\\utest/source/harness.cpp" @@ -311,6 +311,10 @@ void Harness::run_next_case() // if await validation _with_ timeout if (case_control.timeout < TIMEOUT_FOREVER) { case_timeout_handle = scheduler.post(handle_timeout, case_control.timeout); + if (case_timeout_handle == NULL) { + raise_failure(REASON_SCHEDULER); + schedule_next_case(); + } } } else { diff --git "a/frameworks\\utest/source/types.cpp" "b/frameworks\\utest/source/types.cpp" index f9bed9849f..80cf1e743f 100644 --- "a/frameworks\\utest/source/types.cpp" +++ "b/frameworks\\utest/source/types.cpp" @@ -56,6 +56,9 @@ const char* utest::v1::stringify(utest::v1::failure_reason_t reason) case REASON_CASE_INDEX: string = "Ignored: Case Index Invalid"; break; + case REASON_SCHEDULER: + string = "Ignored: Scheduling Asynchronous Callback Failed"; + break; default: case REASON_UNKNOWN: string = "Ignored: Unknown Failure"; diff --git "a/frameworks\\utest/utest/types.h" "b/frameworks\\utest/utest/types.h" index 8d49176827..8ba36d097f 100644 --- "a/frameworks\\utest/utest/types.h" +++ "b/frameworks\\utest/utest/types.h" @@ -66,6 +66,7 @@ namespace v1 { REASON_CASE_TEARDOWN = (1 << 9), ///< Case teardown failed REASON_CASE_INDEX = (1 << 10), ///< Case index out-of-range + REASON_SCHEDULER = (1 << 11), ///< Asynchronous callback scheduling failed REASON_IGNORE = 0x8000 ///< The failure may be ignored };