C++ client: Skip flaky tests (#7358)
This commit is contained in:
parent
92f21dbda0
commit
68579d1c11
|
|
@ -768,7 +768,8 @@ TEST(connection_impl_stop, can_start_and_stop_connection)
|
||||||
ASSERT_EQ(_XPLATSTR("[state change] disconnecting -> disconnected\n"), remove_date_from_log_entry(log_entries[3]));
|
ASSERT_EQ(_XPLATSTR("[state change] disconnecting -> disconnected\n"), remove_date_from_log_entry(log_entries[3]));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(connection_impl_stop, can_start_and_stop_connection_multiple_times)
|
// Flaky test: "transport timed out when trying to connect"
|
||||||
|
TEST(connection_impl_stop, DISABLED_can_start_and_stop_connection_multiple_times)
|
||||||
{
|
{
|
||||||
auto writer = std::shared_ptr<log_writer>{std::make_shared<memory_log_writer>()};
|
auto writer = std::shared_ptr<log_writer>{std::make_shared<memory_log_writer>()};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,8 @@ TEST(stop, disconnected_callback_called_when_hub_connection_stops)
|
||||||
ASSERT_TRUE(disconnected_invoked);
|
ASSERT_TRUE(disconnected_invoked);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(stop, connection_stopped_when_going_out_of_scope)
|
// Flaky test: ASSERT_EQ(4U, log_entries.size()) was 3
|
||||||
|
TEST(stop, DISABLED_connection_stopped_when_going_out_of_scope)
|
||||||
{
|
{
|
||||||
std::shared_ptr<log_writer> writer(std::make_shared<memory_log_writer>());
|
std::shared_ptr<log_writer> writer(std::make_shared<memory_log_writer>());
|
||||||
|
|
||||||
|
|
@ -223,7 +224,8 @@ TEST(hub_invocation, hub_connection_invokes_users_code_on_hub_invocations)
|
||||||
ASSERT_EQ(_XPLATSTR("[\"message\",1]"), *payload);
|
ASSERT_EQ(_XPLATSTR("[\"message\",1]"), *payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(invoke, invoke_creates_correct_payload)
|
// Flaky test: "error" thrown in test body
|
||||||
|
TEST(invoke, DISABLED_invoke_creates_correct_payload)
|
||||||
{
|
{
|
||||||
utility::string_t payload;
|
utility::string_t payload;
|
||||||
|
|
||||||
|
|
@ -250,7 +252,8 @@ TEST(invoke, invoke_creates_correct_payload)
|
||||||
ASSERT_EQ(_XPLATSTR("{\"arguments\":[],\"target\":\"method\",\"type\":1}\x1e"), payload);
|
ASSERT_EQ(_XPLATSTR("{\"arguments\":[],\"target\":\"method\",\"type\":1}\x1e"), payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(invoke, callback_not_called_if_send_throws)
|
// "error" thrown in test body
|
||||||
|
TEST(invoke, DISABLED_callback_not_called_if_send_throws)
|
||||||
{
|
{
|
||||||
auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
/* receive function */ []() { return pplx::task_from_result(std::string("{ }\x1e")); },
|
/* receive function */ []() { return pplx::task_from_result(std::string("{ }\x1e")); },
|
||||||
|
|
@ -269,7 +272,7 @@ TEST(invoke, callback_not_called_if_send_throws)
|
||||||
ASSERT_STREQ("error", e.what());
|
ASSERT_STREQ("error", e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
// stop completes all outstanting callbacks so if we did not remove a callback when `invoke_void` failed an
|
// stop completes all outstanding callbacks so if we did not remove a callback when `invoke_void` failed an
|
||||||
// unobserved exception exception would be thrown. Note that this would happen on a different thread and would
|
// unobserved exception exception would be thrown. Note that this would happen on a different thread and would
|
||||||
// crash the process
|
// crash the process
|
||||||
hub_connection->stop().get();
|
hub_connection->stop().get();
|
||||||
|
|
@ -434,7 +437,8 @@ TEST(invoke_void, invoke_unblocks_task_when_server_completes_call)
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(invoke_void, invoke_logs_if_callback_for_given_id_not_found)
|
// Flaky test: crashes test process
|
||||||
|
TEST(invoke_void, DISABLED_invoke_logs_if_callback_for_given_id_not_found)
|
||||||
{
|
{
|
||||||
auto message_received_event = std::make_shared<event>();
|
auto message_received_event = std::make_shared<event>();
|
||||||
|
|
||||||
|
|
@ -473,230 +477,230 @@ TEST(invoke_void, invoke_logs_if_callback_for_given_id_not_found)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Flaky until hub_connection.start waits for handshake response
|
// TODO Flaky until hub_connection.start waits for handshake response
|
||||||
//TEST(invoke_void, invoke_propagates_errors_from_server_as_exceptions)
|
TEST(invoke_void, DISABLED_invoke_propagates_errors_from_server_as_exceptions)
|
||||||
//{
|
{
|
||||||
// auto callback_registered_event = std::make_shared<event>();
|
auto callback_registered_event = std::make_shared<event>();
|
||||||
//
|
|
||||||
// int call_number = -1;
|
int call_number = -1;
|
||||||
// auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
// /* receive function */ [call_number, callback_registered_event]()
|
/* receive function */ [call_number, callback_registered_event]()
|
||||||
// mutable {
|
mutable {
|
||||||
// std::string responses[]
|
std::string responses[]
|
||||||
// {
|
{
|
||||||
// "{ }\x1e",
|
"{ }\x1e",
|
||||||
// "{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
"{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
||||||
// "{}"
|
"{}"
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// call_number = std::min(call_number + 1, 2);
|
call_number = std::min(call_number + 1, 2);
|
||||||
//
|
|
||||||
// if (call_number > 0)
|
if (call_number > 0)
|
||||||
// {
|
{
|
||||||
// callback_registered_event->wait();
|
callback_registered_event->wait();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return pplx::task_from_result(responses[call_number]);
|
return pplx::task_from_result(responses[call_number]);
|
||||||
// });
|
});
|
||||||
//
|
|
||||||
// auto hub_connection = create_hub_connection(websocket_client);
|
auto hub_connection = create_hub_connection(websocket_client);
|
||||||
// try
|
try
|
||||||
// {
|
{
|
||||||
// hub_connection->start()
|
hub_connection->start()
|
||||||
// .then([hub_connection, callback_registered_event]()
|
.then([hub_connection, callback_registered_event]()
|
||||||
// {
|
{
|
||||||
// auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
||||||
// callback_registered_event->set();
|
callback_registered_event->set();
|
||||||
// return t;
|
return t;
|
||||||
// }).get();
|
}).get();
|
||||||
//
|
|
||||||
// ASSERT_TRUE(false); // exception expected but not thrown
|
ASSERT_TRUE(false); // exception expected but not thrown
|
||||||
// }
|
}
|
||||||
// catch (const std::runtime_error& e)
|
catch (const std::runtime_error& e)
|
||||||
// {
|
{
|
||||||
// ASSERT_STREQ("\"Ooops\"", e.what());
|
ASSERT_STREQ("\"Ooops\"", e.what());
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
// TODO Flaky until hub_connection.start waits for handshake response
|
// TODO Flaky until hub_connection.start waits for handshake response
|
||||||
//TEST(invoke_void, invoke_propagates_hub_errors_from_server_as_hub_exceptions)
|
TEST(invoke_void, DISABLED_invoke_propagates_hub_errors_from_server_as_hub_exceptions)
|
||||||
//{
|
{
|
||||||
// auto callback_registered_event = std::make_shared<event>();
|
auto callback_registered_event = std::make_shared<event>();
|
||||||
//
|
|
||||||
// int call_number = -1;
|
int call_number = -1;
|
||||||
// auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
// /* receive function */ [call_number, callback_registered_event]()
|
/* receive function */ [call_number, callback_registered_event]()
|
||||||
// mutable {
|
mutable {
|
||||||
// std::string responses[]
|
std::string responses[]
|
||||||
// {
|
{
|
||||||
// "{ }\x1e",
|
"{ }\x1e",
|
||||||
// "{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
"{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
||||||
// "{}"
|
"{}"
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// call_number = std::min(call_number + 1, 2);
|
call_number = std::min(call_number + 1, 2);
|
||||||
//
|
|
||||||
// if (call_number > 0)
|
if (call_number > 0)
|
||||||
// {
|
{
|
||||||
// callback_registered_event->wait();
|
callback_registered_event->wait();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return pplx::task_from_result(responses[call_number]);
|
return pplx::task_from_result(responses[call_number]);
|
||||||
// });
|
});
|
||||||
//
|
|
||||||
// auto hub_connection = create_hub_connection(websocket_client);
|
auto hub_connection = create_hub_connection(websocket_client);
|
||||||
// try
|
try
|
||||||
// {
|
{
|
||||||
// hub_connection->start()
|
hub_connection->start()
|
||||||
// .then([hub_connection, callback_registered_event]()
|
.then([hub_connection, callback_registered_event]()
|
||||||
// {
|
{
|
||||||
// auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
||||||
// callback_registered_event->set();
|
callback_registered_event->set();
|
||||||
// return t;
|
return t;
|
||||||
// }).get();
|
}).get();
|
||||||
//
|
|
||||||
// ASSERT_TRUE(false); // exception expected but not thrown
|
ASSERT_TRUE(false); // exception expected but not thrown
|
||||||
// }
|
}
|
||||||
// catch (const hub_exception& e)
|
catch (const hub_exception& e)
|
||||||
// {
|
{
|
||||||
// ASSERT_STREQ("\"Ooops\"", e.what());
|
ASSERT_STREQ("\"Ooops\"", e.what());
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
// TODO Flaky until hub_connection.start waits for handshake response
|
// TODO Flaky until hub_connection.start waits for handshake response
|
||||||
//TEST(invoke_void, invoke_creates_hub_exception_even_if_no_error_data)
|
TEST(invoke_void, DISABLED_invoke_creates_hub_exception_even_if_no_error_data)
|
||||||
//{
|
{
|
||||||
// auto callback_registered_event = std::make_shared<event>();
|
auto callback_registered_event = std::make_shared<event>();
|
||||||
//
|
|
||||||
// int call_number = -1;
|
int call_number = -1;
|
||||||
// auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
// /* receive function */ [call_number, callback_registered_event]()
|
/* receive function */ [call_number, callback_registered_event]()
|
||||||
// mutable {
|
mutable {
|
||||||
// std::string responses[]
|
std::string responses[]
|
||||||
// {
|
{
|
||||||
// "{ }\x1e",
|
"{ }\x1e",
|
||||||
// "{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
"{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
||||||
// "{}"
|
"{}"
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// call_number = std::min(call_number + 1, 2);
|
call_number = std::min(call_number + 1, 2);
|
||||||
//
|
|
||||||
// if (call_number > 0)
|
if (call_number > 0)
|
||||||
// {
|
{
|
||||||
// callback_registered_event->wait();
|
callback_registered_event->wait();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return pplx::task_from_result(responses[call_number]);
|
return pplx::task_from_result(responses[call_number]);
|
||||||
// });
|
});
|
||||||
//
|
|
||||||
// auto hub_connection = create_hub_connection(websocket_client);
|
auto hub_connection = create_hub_connection(websocket_client);
|
||||||
// try
|
try
|
||||||
// {
|
{
|
||||||
// hub_connection->start()
|
hub_connection->start()
|
||||||
// .then([hub_connection, callback_registered_event]()
|
.then([hub_connection, callback_registered_event]()
|
||||||
// {
|
{
|
||||||
// auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
||||||
// callback_registered_event->set();
|
callback_registered_event->set();
|
||||||
// return t;
|
return t;
|
||||||
// }).get();
|
}).get();
|
||||||
//
|
|
||||||
// ASSERT_TRUE(false); // exception expected but not thrown
|
ASSERT_TRUE(false); // exception expected but not thrown
|
||||||
// }
|
}
|
||||||
// catch (const hub_exception& e)
|
catch (const hub_exception& e)
|
||||||
// {
|
{
|
||||||
// ASSERT_STREQ("\"Ooops\"", e.what());
|
ASSERT_STREQ("\"Ooops\"", e.what());
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
// TODO Flaky until hub_connection.start waits for handshake response
|
// TODO Flaky until hub_connection.start waits for handshake response
|
||||||
//TEST(invoke_void, invoke_creates_runtime_error_when_hub_exception_indicator_false)
|
TEST(invoke_void, DISABLED_invoke_creates_runtime_error_when_hub_exception_indicator_false)
|
||||||
//{
|
{
|
||||||
// auto callback_registered_event = std::make_shared<event>();
|
auto callback_registered_event = std::make_shared<event>();
|
||||||
//
|
|
||||||
// int call_number = -1;
|
int call_number = -1;
|
||||||
// auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
// /* receive function */ [call_number, callback_registered_event]()
|
/* receive function */ [call_number, callback_registered_event]()
|
||||||
// mutable {
|
mutable {
|
||||||
// std::string responses[]
|
std::string responses[]
|
||||||
// {
|
{
|
||||||
// "{ }\x1e",
|
"{ }\x1e",
|
||||||
// "{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
"{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
||||||
// "{}"
|
"{}"
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// call_number = std::min(call_number + 1, 2);
|
call_number = std::min(call_number + 1, 2);
|
||||||
//
|
|
||||||
// if (call_number > 0)
|
if (call_number > 0)
|
||||||
// {
|
{
|
||||||
// callback_registered_event->wait();
|
callback_registered_event->wait();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return pplx::task_from_result(responses[call_number]);
|
return pplx::task_from_result(responses[call_number]);
|
||||||
// });
|
});
|
||||||
//
|
|
||||||
// auto hub_connection = create_hub_connection(websocket_client);
|
auto hub_connection = create_hub_connection(websocket_client);
|
||||||
// try
|
try
|
||||||
// {
|
{
|
||||||
// hub_connection->start()
|
hub_connection->start()
|
||||||
// .then([hub_connection, callback_registered_event]()
|
.then([hub_connection, callback_registered_event]()
|
||||||
// {
|
{
|
||||||
// auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
||||||
// callback_registered_event->set();
|
callback_registered_event->set();
|
||||||
// return t;
|
return t;
|
||||||
// }).get();
|
}).get();
|
||||||
//
|
|
||||||
// ASSERT_TRUE(false); // exception expected but not thrown
|
ASSERT_TRUE(false); // exception expected but not thrown
|
||||||
// }
|
}
|
||||||
// catch (const signalr_exception& e)
|
catch (const signalr_exception& e)
|
||||||
// {
|
{
|
||||||
// ASSERT_STREQ("\"Ooops\"", e.what());
|
ASSERT_STREQ("\"Ooops\"", e.what());
|
||||||
// ASSERT_TRUE(dynamic_cast<const hub_exception *>(&e) == nullptr);
|
ASSERT_TRUE(dynamic_cast<const hub_exception *>(&e) == nullptr);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
// TODO Flaky until hub_connection.start waits for handshake response
|
// TODO Flaky until hub_connection.start waits for handshake response
|
||||||
//TEST(invoke_void, invoke_creates_runtime_error)
|
TEST(invoke_void, DISABLED_invoke_creates_runtime_error)
|
||||||
//{
|
{
|
||||||
// auto callback_registered_event = std::make_shared<event>();
|
auto callback_registered_event = std::make_shared<event>();
|
||||||
//
|
|
||||||
// int call_number = -1;
|
int call_number = -1;
|
||||||
// auto websocket_client = create_test_websocket_client(
|
auto websocket_client = create_test_websocket_client(
|
||||||
// /* receive function */ [call_number, callback_registered_event]()
|
/* receive function */ [call_number, callback_registered_event]()
|
||||||
// mutable {
|
mutable {
|
||||||
// std::string responses[]
|
std::string responses[]
|
||||||
// {
|
{
|
||||||
// "{ }\x1e",
|
"{ }\x1e",
|
||||||
// "{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
"{ \"type\": 3, \"invocationId\": \"0\", \"error\": \"Ooops\" }\x1e"
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// call_number = std::min(call_number + 1, 1);
|
call_number = std::min(call_number + 1, 1);
|
||||||
//
|
|
||||||
// if (call_number > 0)
|
if (call_number > 0)
|
||||||
// {
|
{
|
||||||
// callback_registered_event->wait();
|
callback_registered_event->wait();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// return pplx::task_from_result(responses[call_number]);
|
return pplx::task_from_result(responses[call_number]);
|
||||||
// });
|
});
|
||||||
//
|
|
||||||
// auto hub_connection = create_hub_connection(websocket_client);
|
auto hub_connection = create_hub_connection(websocket_client);
|
||||||
// try
|
try
|
||||||
// {
|
{
|
||||||
// hub_connection->start()
|
hub_connection->start()
|
||||||
// .then([hub_connection, callback_registered_event]()
|
.then([hub_connection, callback_registered_event]()
|
||||||
// {
|
{
|
||||||
// auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
auto t = hub_connection->invoke_void(_XPLATSTR("method"), json::value::array());
|
||||||
// callback_registered_event->set();
|
callback_registered_event->set();
|
||||||
// return t;
|
return t;
|
||||||
// }).get();
|
}).get();
|
||||||
//
|
|
||||||
// ASSERT_TRUE(false); // exception expected but not thrown
|
ASSERT_TRUE(false); // exception expected but not thrown
|
||||||
// }
|
}
|
||||||
// catch (const signalr_exception& e)
|
catch (const signalr_exception& e)
|
||||||
// {
|
{
|
||||||
// ASSERT_STREQ("\"Ooops\"", e.what());
|
ASSERT_STREQ("\"Ooops\"", e.what());
|
||||||
// ASSERT_TRUE(dynamic_cast<const hub_exception *>(&e) == nullptr);
|
ASSERT_TRUE(dynamic_cast<const hub_exception *>(&e) == nullptr);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
TEST(connection_id, can_get_connection_id)
|
TEST(connection_id, can_get_connection_id)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,8 @@ TEST(websocket_transport_connect, connect_logs_exceptions)
|
||||||
entry);
|
entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(websocket_transport_connect, cannot_call_connect_on_already_connected_transport)
|
// Flaky test: crashes test process
|
||||||
|
TEST(websocket_transport_connect, DISABLED_cannot_call_connect_on_already_connected_transport)
|
||||||
{
|
{
|
||||||
auto client = std::make_shared<test_websocket_client>();
|
auto client = std::make_shared<test_websocket_client>();
|
||||||
auto ws_transport = websocket_transport::create([&](){ return client; }, logger(std::make_shared<trace_log_writer>(), trace_level::none),
|
auto ws_transport = websocket_transport::create([&](){ return client; }, logger(std::make_shared<trace_log_writer>(), trace_level::none),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue