123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #include <gtest/gtest.h>
- #include <exception>
- #include <stdexcept>
- #include <cxxreact/RecoverableError.h>
- using namespace facebook::react;
- TEST(RecoverableError, RunRethrowingAsRecoverableRecoverTest) {
- try {
- RecoverableError::runRethrowingAsRecoverable<std::runtime_error>(
- []() { throw std::runtime_error("catch me"); });
- FAIL() << "Unthrown exception";
- } catch (const RecoverableError &err) {
- ASSERT_STREQ(err.what(), "facebook::react::Recoverable: catch me");
- } catch (...) {
- FAIL() << "Uncaught exception";
- }
- }
- TEST(RecoverableError, RunRethrowingAsRecoverableFallthroughTest) {
- try {
- RecoverableError::runRethrowingAsRecoverable<std::runtime_error>(
- []() { throw std::logic_error("catch me"); });
- FAIL() << "Unthrown exception";
- } catch (const RecoverableError &err) {
- FAIL() << "Recovered exception that should have fallen through";
- } catch (const std::exception &err) {
- ASSERT_STREQ(err.what(), "catch me");
- }
- }
|