summaryrefslogtreecommitdiff
path: root/indra/newview/tests/llhttpretrypolicy_test.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2013-04-16 20:27:49 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2013-04-16 20:27:49 -0400
commite3bad9fb86c3f44ad67488402ce2e46743a2422e (patch)
treefee6f93203d87d71031de5df7181cd7df9ca88ce /indra/newview/tests/llhttpretrypolicy_test.cpp
parent9cbbb45a0ca8a56707125cdb3f6ea95de7f9deef (diff)
SH-4061 WIP - fix for build issues on mac, reset the retry policy on success.
Diffstat (limited to 'indra/newview/tests/llhttpretrypolicy_test.cpp')
-rwxr-xr-xindra/newview/tests/llhttpretrypolicy_test.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/indra/newview/tests/llhttpretrypolicy_test.cpp b/indra/newview/tests/llhttpretrypolicy_test.cpp
index 6fa3a57364..ed7f3ba326 100755
--- a/indra/newview/tests/llhttpretrypolicy_test.cpp
+++ b/indra/newview/tests/llhttpretrypolicy_test.cpp
@@ -45,7 +45,7 @@ void RetryPolicyTestObject::test<1>()
LLSD headers;
F32 wait_seconds;
- // No retry until we've finished a try.
+ // No retry until we've failed a try.
ensure("never retry 0", !never_retry.shouldRetry(wait_seconds));
// 0 retries max.
@@ -74,7 +74,7 @@ void RetryPolicyTestObject::test<3>()
bool should_retry;
U32 frac_bits = 6;
- // No retry until we've finished a try.
+ // No retry until we've failed a try.
ensure("basic_retry 0", !basic_retry.shouldRetry(wait_seconds));
// Starting wait 1.0
@@ -105,6 +105,29 @@ void RetryPolicyTestObject::test<3>()
basic_retry.onFailure(500,headers);
should_retry = basic_retry.shouldRetry(wait_seconds);
ensure("basic_retry 5", !should_retry);
+
+ // Max retries, should fail now.
+ basic_retry.onFailure(500,headers);
+ should_retry = basic_retry.shouldRetry(wait_seconds);
+ ensure("basic_retry 5", !should_retry);
+
+ // After a success, should reset to the starting state.
+ basic_retry.onSuccess();
+
+ // No retry until we've failed a try.
+ ensure("basic_retry 6", !basic_retry.shouldRetry(wait_seconds));
+
+ // Starting wait 1.0
+ basic_retry.onFailure(500,headers);
+ should_retry = basic_retry.shouldRetry(wait_seconds);
+ ensure("basic_retry 7", should_retry);
+ ensure_approximately_equals("basic_retry 7", wait_seconds, 1.0F, frac_bits);
+
+ // Double wait to 2.0
+ basic_retry.onFailure(500,headers);
+ should_retry = basic_retry.shouldRetry(wait_seconds);
+ ensure("basic_retry 8", should_retry);
+ ensure_approximately_equals("basic_retry 8", wait_seconds, 2.0F, frac_bits);
}
// Retries should stop as soon as a non-5xx error is received.
@@ -221,7 +244,7 @@ void RetryPolicyTestObject::test<6>()
success = getSecondsUntilRetryAfter(str3, seconds_to_wait);
std::cerr << " str3 [" << str3 << "]" << std::endl;
ensure("parse 3", success);
- ensure_approximately_equals("parse 3", seconds_to_wait, 44.0F, 2);
+ ensure_approximately_equals_range("parse 3", seconds_to_wait, 44.0F, 2.0F);
}
// Test retry-after field in both llmessage and CoreHttp headers.
@@ -237,7 +260,7 @@ void RetryPolicyTestObject::test<7>()
F32 seconds_to_wait;
bool should_retry;
- // No retry until we've finished a try.
+ // No retry until we've failed a try.
ensure("header 0", !policy.shouldRetry(seconds_to_wait));
// no retry header, use default.
@@ -252,7 +275,7 @@ void RetryPolicyTestObject::test<7>()
policy.onFailure(503,sd_headers);
should_retry = policy.shouldRetry(seconds_to_wait);
ensure("header 2", should_retry);
- ensure_approximately_equals("header 2", seconds_to_wait, 7.0F, 2);
+ ensure_approximately_equals_range("header 2", seconds_to_wait, 7.0F, 2.0F);
LLCore::HttpResponse *response;
LLCore::HttpHeaders *headers;
@@ -279,7 +302,7 @@ void RetryPolicyTestObject::test<7>()
policy.onFailure(response);
should_retry = policy.shouldRetry(seconds_to_wait);
ensure("header 4",should_retry);
- ensure_approximately_equals("header 4", seconds_to_wait, 77.0F, 2);
+ ensure_approximately_equals_range("header 4", seconds_to_wait, 77.0F, 2.0F);
response->release();
// Timeout should be clamped at max.