diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-07-05 08:47:29 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-07-05 08:47:29 -0300 |
| commit | e288920bec3000b6cb0da7e16b95c27e4e34be6c (patch) | |
| tree | bd23b6e6ae5cdbe488054228678c590a107c506e | |
| parent | 1eca3a3ca090f9f9b952af4c0348a4da4aeb74ba (diff) | |
| parent | b2081a732b041e322fa6181c0f0381735baf15c1 (diff) | |
| download | mullvadvpn-e288920bec3000b6cb0da7e16b95c27e4e34be6c.tar.xz mullvadvpn-e288920bec3000b6cb0da7e16b95c27e4e34be6c.zip | |
Merge branch 'fix-test-race-condition'
| -rw-r--r-- | mullvad-tests/tests/connection.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/mullvad-tests/tests/connection.rs b/mullvad-tests/tests/connection.rs index 77f08fab14..653d783aed 100644 --- a/mullvad-tests/tests/connection.rs +++ b/mullvad-tests/tests/connection.rs @@ -95,12 +95,14 @@ fn ignores_event_from_unauthorized_connection_from_openvpn_plugin() { let mut daemon = DaemonRunner::spawn(); let mut rpc_client = daemon.rpc_client().unwrap(); let openvpn_args_file = daemon.mock_openvpn_args_file(); + let mut openvpn_args_file_events = PathWatcher::watch(&openvpn_args_file).unwrap(); let state_events = rpc_client.new_state_subscribe().unwrap(); rpc_client.set_account(Some("123456".to_owned())).unwrap(); rpc_client.connect().unwrap(); assert_state_event(&state_events, CONNECTING_STATE); + openvpn_args_file_events.assert_create_write_close_sequence(); let mut mock_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); let call_result = mock_plugin_client.up(); @@ -115,12 +117,14 @@ fn authentication_credentials() { let mut daemon = DaemonRunner::spawn(); let mut rpc_client = daemon.rpc_client().unwrap(); let openvpn_args_file = daemon.mock_openvpn_args_file(); + let mut openvpn_args_file_events = PathWatcher::watch(&openvpn_args_file).unwrap(); let state_events = rpc_client.new_state_subscribe().unwrap(); rpc_client.set_account(Some("123456".to_owned())).unwrap(); rpc_client.connect().unwrap(); assert_state_event(&state_events, CONNECTING_STATE); + openvpn_args_file_events.assert_create_write_close_sequence(); let mut mock_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); @@ -145,12 +149,14 @@ fn separate_connections_have_independent_authentication() { let mut daemon = DaemonRunner::spawn(); let mut rpc_client = daemon.rpc_client().unwrap(); let openvpn_args_file = daemon.mock_openvpn_args_file(); + let mut openvpn_args_file_events = PathWatcher::watch(&openvpn_args_file).unwrap(); let state_events = rpc_client.new_state_subscribe().unwrap(); rpc_client.set_account(Some("123456".to_owned())).unwrap(); rpc_client.connect().unwrap(); assert_state_event(&state_events, CONNECTING_STATE); + openvpn_args_file_events.assert_create_write_close_sequence(); let mut first_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); let mut second_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); @@ -169,12 +175,14 @@ fn changes_to_connected_state() { let mut daemon = DaemonRunner::spawn(); let mut rpc_client = daemon.rpc_client().unwrap(); let openvpn_args_file = daemon.mock_openvpn_args_file(); + let mut openvpn_args_file_events = PathWatcher::watch(&openvpn_args_file).unwrap(); let state_events = rpc_client.new_state_subscribe().unwrap(); rpc_client.set_account(Some("123456".to_owned())).unwrap(); rpc_client.connect().unwrap(); assert_state_event(&state_events, CONNECTING_STATE); + openvpn_args_file_events.assert_create_write_close_sequence(); let mut mock_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); @@ -221,12 +229,14 @@ fn disconnects() { let mut daemon = DaemonRunner::spawn(); let mut rpc_client = daemon.rpc_client().unwrap(); let openvpn_args_file = daemon.mock_openvpn_args_file(); + let mut openvpn_args_file_events = PathWatcher::watch(&openvpn_args_file).unwrap(); let state_events = rpc_client.new_state_subscribe().unwrap(); rpc_client.set_account(Some("123456".to_owned())).unwrap(); rpc_client.connect().unwrap(); assert_state_event(&state_events, CONNECTING_STATE); + openvpn_args_file_events.assert_create_write_close_sequence(); let mut mock_plugin_client = create_mock_openvpn_plugin_client(openvpn_args_file); @@ -260,14 +270,7 @@ fn assert_no_state_event(receiver: &mpsc::Receiver<DaemonState>) { fn create_mock_openvpn_plugin_client<P: AsRef<Path>>( openvpn_args_file_path: P, ) -> MockOpenVpnPluginRpcClient { - let args_file_path = openvpn_args_file_path.as_ref(); - - if !args_file_path.exists() { - let _wait_for_args_file = PathWatcher::watch(&args_file_path) - .map(|mut events| events.find(|&event| event == watch_event::CLOSE_WRITE)); - } - - let (address, credentials) = get_plugin_arguments(&args_file_path); + let (address, credentials) = get_plugin_arguments(openvpn_args_file_path); MockOpenVpnPluginRpcClient::new(address, credentials) .expect("Failed to create mock RPC client to connect to OpenVPN plugin event listener") |
