[Tests] If we have server errors. Mark test as inconclusive. (#7401)

If we are getting errors (500,401..) do not mark a link all test as a
failure, but as inconclusive. Update the urls since msdn is giving always a 500.

Fixes: https://github.com/xamarin/maccore/issues/2056
This commit is contained in:
Manuel de la Pena 2019-11-12 13:34:58 -05:00 коммит произвёл GitHub
Родитель 268f9e8c23
Коммит ca98880277
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 22 добавлений и 6 удалений

Просмотреть файл

@ -21,16 +21,28 @@ namespace LinkAnyTest {
}
static bool waited;
static bool requestError;
static HttpStatusCode statusCode;
// http://blogs.msdn.com/b/csharpfaq/archive/2012/06/26/understanding-a-simple-async-program.aspx
// ref: https://bugzilla.xamarin.com/show_bug.cgi?id=7114
static async Task GetWebPageAsync ()
{
Task<string> getWebPageTask = new HttpClient ().GetStringAsync ("http://msdn.microsoft.com");
string content = await getWebPageTask;
// do not use GetStringAsync, we are going to miss useful data, such as the resul code
using (var client = new HttpClient ()) {
HttpResponseMessage response = await client.GetAsync ("http://example.com");
if(!response.IsSuccessStatusCode) {
requestError = true;
statusCode = response.StatusCode;
} else {
string content = await response.Content.ReadAsStringAsync ();
waited = true;
bool success = !String.IsNullOrEmpty (content);
Assert.IsTrue (success, $"received {content.Length} bytes");
}
}
}
[Test]
public void GetWebPageAsyncTest ()
@ -40,7 +52,11 @@ namespace LinkAnyTest {
// we do not want the async code to get back to the AppKit thread, hanging the process
SynchronizationContext.SetSynchronizationContext (null);
GetWebPageAsync ().Wait ();
if (requestError) {
Assert.Inconclusive ($"Test cannot be trusted. Issues performing the request. Status code '{statusCode}'");
} else {
Assert.IsTrue (waited, "async/await worked");
}
} finally {
SynchronizationContext.SetSynchronizationContext (current_sc);
}