Skip to content

Commit e2b04a2

Browse files
committed
update test to check time lower bound
1 parent 9091780 commit e2b04a2

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

tests/v5/mqtt5_client_tests.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,22 @@
1818
#include <aws/testing/aws_test_harness.h>
1919

2020
#include <math.h>
21+
#define AWS_MQTT5_TESTING_DELAY_NS 200 * 1000 * 1000 /*200ms*/
2122

2223
static bool s_is_within_percentage_of(uint64_t expected_time, uint64_t actual_time, double percentage) {
2324
double actual_percent = 1.0 - (double)actual_time / (double)expected_time;
2425
return fabs(actual_percent) <= percentage;
2526
}
2627

28+
static bool s_validate_time(uint64_t expected_time, uint64_t actual_time, double percentage) {
29+
uint64_t delta = actual_time > expected_time : actual_time - expected_time : expected_time - actual_time;
30+
return delta < AWS_MQTT5_TESTING_DELAY_NS || s_is_within_percentage_of(expected_time, actual_time, percentage);
31+
}
32+
33+
static bool s_check_time_lower_bound(uint64_t expected_time, uint64_t actual_time) {
34+
return actual_time >= expected_time;
35+
}
36+
2737
int aws_mqtt5_mock_server_handle_connect_always_succeed(
2838
void *packet,
2939
struct aws_mqtt5_server_mock_connection_context *connection,
@@ -1508,7 +1518,7 @@ int aws_verify_reconnection_exponential_backoff_timestamps(struct aws_mqtt5_clie
15081518
uint64_t time_diff = aws_timestamp_convert(
15091519
record->timestamp - last_timestamp, AWS_TIMESTAMP_NANOS, AWS_TIMESTAMP_MILLIS, NULL);
15101520

1511-
if (!s_is_within_percentage_of(expected_backoff, time_diff, .3)) {
1521+
if (!s_check_time_lower_bound(expected_backoff, time_diff)) {
15121522
return AWS_OP_ERR;
15131523
}
15141524

@@ -1717,7 +1727,7 @@ static int s_verify_reconnection_after_success_used_backoff(
17171727
AWS_TIMESTAMP_MILLIS,
17181728
NULL);
17191729

1720-
if (!s_is_within_percentage_of(expected_reconnect_delay_ms, post_success_reconnect_time_ms, .3)) {
1730+
if (!s_validate_expected_time(expected_reconnect_delay_ms, post_success_reconnect_time_ms, .3)) {
17211731
return AWS_OP_ERR;
17221732
}
17231733

0 commit comments

Comments
 (0)