mirror of https://github.com/nodejs/node.git
inspector: wait for both sides closing
Removes race condition when test relied on both sides of the socket to be closed on the same UV event loop iteration. Fixes: nodejs/node#8498 PR-URL: https://github.com/nodejs/node/pull/8505 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-by: Fedor Indutny <fedor@indutny.com>pull/8672/head
parent
078bf68d94
commit
a67f11d9f4
|
@ -330,6 +330,11 @@ static void manual_inspector_socket_cleanup() {
|
|||
inspector.buffer.clear();
|
||||
}
|
||||
|
||||
static void assert_both_sockets_closed() {
|
||||
SPIN_WHILE(uv_is_active(reinterpret_cast<uv_handle_t*>(&client_socket)));
|
||||
SPIN_WHILE(uv_is_active(reinterpret_cast<uv_handle_t*>(&inspector.client)));
|
||||
}
|
||||
|
||||
static void on_connection(uv_connect_t* connect, int status) {
|
||||
GTEST_ASSERT_EQ(0, status);
|
||||
connect->data = connect;
|
||||
|
@ -503,8 +508,7 @@ TEST_F(InspectorSocketTest, ExtraTextBeforeRequest) {
|
|||
do_write(const_cast<char*>(HANDSHAKE_REQ), sizeof(HANDSHAKE_REQ) - 1);
|
||||
SPIN_WHILE(last_event != kInspectorHandshakeFailed);
|
||||
expect_handshake_failure();
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&client_socket)), 0);
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&socket)), 0);
|
||||
assert_both_sockets_closed();
|
||||
}
|
||||
|
||||
TEST_F(InspectorSocketTest, ExtraLettersBeforeRequest) {
|
||||
|
@ -515,8 +519,7 @@ TEST_F(InspectorSocketTest, ExtraLettersBeforeRequest) {
|
|||
do_write(const_cast<char*>(HANDSHAKE_REQ), sizeof(HANDSHAKE_REQ) - 1);
|
||||
SPIN_WHILE(last_event != kInspectorHandshakeFailed);
|
||||
expect_handshake_failure();
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&client_socket)), 0);
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&socket)), 0);
|
||||
assert_both_sockets_closed();
|
||||
}
|
||||
|
||||
TEST_F(InspectorSocketTest, RequestWithoutKey) {
|
||||
|
@ -530,8 +533,7 @@ TEST_F(InspectorSocketTest, RequestWithoutKey) {
|
|||
do_write(const_cast<char*>(BROKEN_REQUEST), sizeof(BROKEN_REQUEST) - 1);
|
||||
SPIN_WHILE(last_event != kInspectorHandshakeFailed);
|
||||
expect_handshake_failure();
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&client_socket)), 0);
|
||||
EXPECT_EQ(uv_is_active(reinterpret_cast<uv_handle_t*>(&socket)), 0);
|
||||
assert_both_sockets_closed();
|
||||
}
|
||||
|
||||
TEST_F(InspectorSocketTest, KillsConnectionOnProtocolViolation) {
|
||||
|
|
Loading…
Reference in New Issue