Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
FaultToleranceTest Class Reference
Inheritance diagram for FaultToleranceTest:
Inheritance graph
Collaboration diagram for FaultToleranceTest:
Collaboration graph

Protected Member Functions

void SetUp () override
 
void TearDown () override
 
kcenon::common::Result< int > failing_operation ()
 
kcenon::common::Result< int > always_failing_operation ()
 
kcenon::common::Result< int > always_succeeding_operation ()
 
kcenon::common::Result< int > slow_operation (std::chrono::milliseconds delay)
 

Protected Attributes

std::atomic< int > call_count {0}
 
std::atomic< int > success_after_attempts {0}
 

Detailed Description

Definition at line 15 of file test_fault_tolerance.cpp.

Member Function Documentation

◆ always_failing_operation()

kcenon::common::Result< int > FaultToleranceTest::always_failing_operation ( )
inlineprotected

Definition at line 43 of file test_fault_tolerance.cpp.

43 {
44 ++call_count;
45 return kcenon::common::make_error<int>(static_cast<int>(monitoring_error_code::operation_failed), "Always fails");
46 }
std::atomic< int > call_count

References call_count.

◆ always_succeeding_operation()

kcenon::common::Result< int > FaultToleranceTest::always_succeeding_operation ( )
inlineprotected

Definition at line 49 of file test_fault_tolerance.cpp.

49 {
50 ++call_count;
51 return kcenon::common::ok(100);
52 }

References call_count.

◆ failing_operation()

kcenon::common::Result< int > FaultToleranceTest::failing_operation ( )
inlineprotected

Definition at line 33 of file test_fault_tolerance.cpp.

33 {
34 int current_call = ++call_count;
35 if (success_after_attempts > 0 && current_call <= success_after_attempts) {
36 return kcenon::common::make_error<int>(static_cast<int>(monitoring_error_code::operation_failed),
37 "Simulated failure on attempt " + std::to_string(current_call));
38 }
39 return kcenon::common::ok(42);
40 }
std::atomic< int > success_after_attempts

References call_count, and success_after_attempts.

◆ SetUp()

void FaultToleranceTest::SetUp ( )
inlineoverrideprotected

Definition at line 17 of file test_fault_tolerance.cpp.

17 {
18 call_count = 0;
20 }

References call_count, and success_after_attempts.

◆ slow_operation()

kcenon::common::Result< int > FaultToleranceTest::slow_operation ( std::chrono::milliseconds delay)
inlineprotected

Definition at line 55 of file test_fault_tolerance.cpp.

55 {
56 ++call_count;
57 std::this_thread::sleep_for(delay);
58 return kcenon::common::ok(200);
59 }
@ delay
Delay requests until resources are available.

References call_count, and kcenon::monitoring::delay.

◆ TearDown()

void FaultToleranceTest::TearDown ( )
inlineoverrideprotected

Member Data Documentation

◆ call_count

std::atomic<int> FaultToleranceTest::call_count {0}
protected

◆ success_after_attempts

std::atomic<int> FaultToleranceTest::success_after_attempts {0}
protected

Definition at line 30 of file test_fault_tolerance.cpp.

30{0};

Referenced by failing_operation(), and SetUp().


The documentation for this class was generated from the following file: