[cfe-commits] [libcxx] r103794 - /libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp
Nick Kledzik
kledzik at apple.com
Fri May 14 13:17:42 PDT 2010
Author: kledzik
Date: Fri May 14 15:17:42 2010
New Revision: 103794
URL: http://llvm.org/viewvc/llvm-project?rev=103794&view=rev
Log:
change test case to verify unexpected() calls terminate - not is terminate
Modified:
libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp
Modified: libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp?rev=103794&r1=103793&r2=103794&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.exception/exception.unexpected/set.unexpected/set_unexpected.pass.cpp Fri May 14 15:17:42 2010
@@ -11,12 +11,25 @@
#include <exception>
#include <cassert>
+#include <cstdlib>
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);
}
More information about the cfe-commits
mailing list