From 627cf7252d19c658217aa20b125a2626abb6f27b Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Tue, 8 Oct 2024 23:09:07 +0300 Subject: [PATCH 1/3] extend coverage --- src/tests/rpp/test_observers.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/tests/rpp/test_observers.cpp b/src/tests/rpp/test_observers.cpp index e632d58b4..aee1eea50 100644 --- a/src/tests/rpp/test_observers.cpp +++ b/src/tests/rpp/test_observers.cpp @@ -13,6 +13,7 @@ #include "rpp/disposables/fwd.hpp" +#include "rpp_trompeloil.hpp" #include #include @@ -293,3 +294,25 @@ TEST_CASE("set_upstream disposing when empty base disposable") SUBCASE("dynamic observer") test_observer(std::move(original_observer).as_dynamic()); } + +TEST_CASE("on_error if exception during on_next") +{ + auto observer = mock_observer{}; + + trompeloeil::sequence s; + SUBCASE("as rvalue") + { + REQUIRE_CALL(*observer, on_next_rvalue(1)).SIDE_EFFECT({ throw std::runtime_error{""}; }).IN_SEQUENCE(s); + REQUIRE_CALL(*observer, on_error(trompeloeil::_)).IN_SEQUENCE(s); + + observer.on_next(1); + } + SUBCASE("as lvalue") + { + REQUIRE_CALL(*observer, on_next_lvalue(1)).SIDE_EFFECT({ throw std::runtime_error{""}; }).IN_SEQUENCE(s); + REQUIRE_CALL(*observer, on_error(trompeloeil::_)).IN_SEQUENCE(s); + + int v{1}; + observer.on_next(v); + } +} \ No newline at end of file From 96d82edfcfc388dd63827c15d0920b67bbf2a132 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 20:09:18 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/tests/rpp/test_observers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/rpp/test_observers.cpp b/src/tests/rpp/test_observers.cpp index aee1eea50..538e47547 100644 --- a/src/tests/rpp/test_observers.cpp +++ b/src/tests/rpp/test_observers.cpp @@ -12,8 +12,8 @@ #include #include "rpp/disposables/fwd.hpp" - #include "rpp_trompeloil.hpp" + #include #include @@ -315,4 +315,4 @@ TEST_CASE("on_error if exception during on_next") int v{1}; observer.on_next(v); } -} \ No newline at end of file +} From a979aa5d711800eb53c0c73e6d5bde942b9f1b01 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Tue, 8 Oct 2024 23:15:29 +0300 Subject: [PATCH 3/3] fix --- src/tests/rpp/test_observers.cpp | 4 ++-- src/tests/utils/rpp_trompeloil.hpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/rpp/test_observers.cpp b/src/tests/rpp/test_observers.cpp index 538e47547..253686c50 100644 --- a/src/tests/rpp/test_observers.cpp +++ b/src/tests/rpp/test_observers.cpp @@ -305,7 +305,7 @@ TEST_CASE("on_error if exception during on_next") REQUIRE_CALL(*observer, on_next_rvalue(1)).SIDE_EFFECT({ throw std::runtime_error{""}; }).IN_SEQUENCE(s); REQUIRE_CALL(*observer, on_error(trompeloeil::_)).IN_SEQUENCE(s); - observer.on_next(1); + rpp::observer>{observer}.on_next(1); } SUBCASE("as lvalue") { @@ -313,6 +313,6 @@ TEST_CASE("on_error if exception during on_next") REQUIRE_CALL(*observer, on_error(trompeloeil::_)).IN_SEQUENCE(s); int v{1}; - observer.on_next(v); + rpp::observer>{observer}.on_next(v); } } diff --git a/src/tests/utils/rpp_trompeloil.hpp b/src/tests/utils/rpp_trompeloil.hpp index 910e277be..578e21fa4 100644 --- a/src/tests/utils/rpp_trompeloil.hpp +++ b/src/tests/utils/rpp_trompeloil.hpp @@ -28,12 +28,12 @@ class mock_observer impl_t& operator*() const noexcept { return *m_impl; } - void on_next(const T& v) const noexcept + void on_next(const T& v) const { m_impl->on_next_lvalue(v); } - void on_next(T&& v) const noexcept + void on_next(T&& v) const { m_impl->on_next_rvalue(std::move(v)); }