[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