From b75862d1a1b567b05deeacf2d5d6c4c02dae4ea3 Mon Sep 17 00:00:00 2001 From: Nick Kledzik Date: Fri, 14 May 2010 20:17:42 +0000 Subject: [PATCH] change test case to verify unexpected() calls terminate - not is terminate git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103794 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../set.unexpected/set_unexpected.pass.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp b/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp index a4b9727a..59ba90bc 100644 --- a/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp +++ b/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp @@ -11,12 +11,25 @@ #include #include +#include void f1() {} void f2() {} +void f3() +{ + std::exit(0); +} + int main() { - assert(std::set_unexpected(f1) == std::terminate); - assert(std::set_unexpected(f2) == f1); + std::unexpected_handler old = std::set_unexpected(f1); + // verify there is a previous unexpected handler + assert(old); + // verify f1 was replace with f2 + assert(std::set_unexpected(f2) == f1); + // verify calling original unexpected handler calls terminate + std::set_terminate(f3); + (*old)(); + assert(0); }