def test_open_simulator_dialog_and_send_mismatching_message(self): stc = self.form.simulator_tab_controller assert isinstance(stc, SimulatorTabController) self.__setup_project() self.add_all_signals_to_simulator() stc.simulator_scene.select_all_items() for msg in stc.simulator_scene.get_selected_messages(): msg.destination = self.dennis stc.ui.gvSimulator.message_updated.emit(msg) list_model = stc.ui.listViewSimulate.model() self.assertEqual(list_model.rowCount(), 2) list_model.setData(list_model.createIndex(1, 0), Qt.Checked, role=Qt.CheckStateRole) dialog = stc.get_simulator_dialog() network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME dialog.device_settings_tx_widget.ui.cbDevice.setCurrentText( network_sdr_name) dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText( network_sdr_name) send_port = self.get_free_port() dialog.simulator.sender.device.set_client_port(send_port) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) s.bind(("", send_port)) s.listen(1) rcv_port = self.get_free_port() dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port) dialog.ui.btnStartStop.click() QTest.qWait(100) modulator = dialog.project_manager.modulators[0] # type: Modulator sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True) sender.client_port = rcv_port sender.send_raw_data(modulator.modulate("1" * 352), 1) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) sender.send_raw_data(modulator.modulate("10" * 176), 1) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) QTest.qWait(1000) simulator_log = dialog.ui.textEditSimulation.toPlainText() self.assertIn("Received message 1", simulator_log) self.assertIn("preamble: 11111111", simulator_log) self.assertIn("Mismatch for label: preamble", simulator_log) dialog.close() s.close()
def test_open_simulator_dialog_and_send_mismatching_message(self): def __wait_for_simulator_log_message(dialog, log_message): n = 0 while not any(log_message in msg for msg in dialog.simulator.log_messages): if n < 50: time.sleep(0.5) else: self.fail("Did not receive log message \"{}\"".format( log_message)) n += 1 stc = self.form.simulator_tab_controller assert isinstance(stc, SimulatorTabController) self.__setup_project() self.add_all_signals_to_simulator() stc.simulator_scene.select_all_items() stc.simulator_config.project_manager.simulator_timeout_ms = 999999999 for msg in stc.simulator_scene.get_selected_messages(): msg.destination = self.dennis stc.ui.gvSimulator.message_updated.emit(msg) list_model = stc.ui.listViewSimulate.model() self.assertEqual(list_model.rowCount(), 2) list_model.setData(list_model.createIndex(1, 0), Qt.Checked, role=Qt.CheckStateRole) dialog = stc.get_simulator_dialog() network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText( network_sdr_name) rcv_port = util.get_free_port() dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port) dialog.simulator.sniffer.adaptive_noise = False dialog.simulator.sniffer.automatic_center = False dialog.ui.btnStartStop.click() __wait_for_simulator_log_message(dialog, "Waiting for message 1") modulator = dialog.project_manager.modulators[0] # type: Modulator sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True) sender.client_port = rcv_port sender.send_raw_data(modulator.modulate("1" * 352), 1) time.sleep(0.5) sender.send_raw_data(IQArray(None, np.float32, 2000), 1) __wait_for_simulator_log_message(dialog, "Waiting for message 2") sender.send_raw_data(modulator.modulate("10" * 176), 1) time.sleep(0.5) sender.send_raw_data(IQArray(None, np.float32, 2000), 1) __wait_for_simulator_log_message(dialog, "Mismatch for label:") dialog.on_timer_timeout() # enforce writing to text view simulator_log = dialog.ui.textEditSimulation.toPlainText() self.assertIn("Received message 1", simulator_log) self.assertIn("preamble: 11111111", simulator_log) self.assertIn("Mismatch for label: preamble", simulator_log) dialog.close()
def test_open_simulator_dialog_and_send_mismatching_message(self): stc = self.form.simulator_tab_controller assert isinstance(stc, SimulatorTabController) self.__setup_project() self.add_all_signals_to_simulator() stc.simulator_scene.select_all_items() stc.simulator_config.project_manager.simulator_timeout_ms = 999999999 for msg in stc.simulator_scene.get_selected_messages(): msg.destination = self.dennis stc.ui.gvSimulator.message_updated.emit(msg) list_model = stc.ui.listViewSimulate.model() self.assertEqual(list_model.rowCount(), 2) list_model.setData(list_model.createIndex(1, 0), Qt.Checked, role=Qt.CheckStateRole) dialog = stc.get_simulator_dialog() network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText(network_sdr_name) rcv_port = self.get_free_port() dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port) dialog.simulator.sniffer.adaptive_noise = False dialog.simulator.sniffer.automatic_center = False dialog.ui.btnStartStop.click() while not any("Waiting for message 1" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for simulator to wait for message 1") time.sleep(1) modulator = dialog.project_manager.modulators[0] # type: Modulator sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True) sender.client_port = rcv_port sender.send_raw_data(modulator.modulate("1" * 352), 1) time.sleep(0.5) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) while not any("Waiting for message 2" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for simulator wait for message 2") time.sleep(1) sender.send_raw_data(modulator.modulate("10" * 176), 1) time.sleep(0.5) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) while not any("Mismatch for label:" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for mismatching message") time.sleep(1) dialog.on_timer_timeout() # enforce writing to text view simulator_log = dialog.ui.textEditSimulation.toPlainText() self.assertIn("Received message 1", simulator_log) self.assertIn("preamble: 11111111", simulator_log) self.assertIn("Mismatch for label: preamble", simulator_log) dialog.close()
def test_open_simulator_dialog_and_send_mismatching_message(self): stc = self.form.simulator_tab_controller assert isinstance(stc, SimulatorTabController) self.__setup_project() self.add_all_signals_to_simulator() stc.simulator_scene.select_all_items() stc.simulator_config.project_manager.simulator_timeout_ms = 999999999 for msg in stc.simulator_scene.get_selected_messages(): msg.destination = self.dennis stc.ui.gvSimulator.message_updated.emit(msg) list_model = stc.ui.listViewSimulate.model() self.assertEqual(list_model.rowCount(), 2) list_model.setData(list_model.createIndex(1, 0), Qt.Checked, role=Qt.CheckStateRole) dialog = stc.get_simulator_dialog() network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText( network_sdr_name) rcv_port = self.get_free_port() dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port) dialog.simulator.sniffer.adaptive_noise = False dialog.simulator.sniffer.automatic_center = False dialog.ui.btnStartStop.click() while not any("Waiting for message 1" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for simulator to wait for message 1") time.sleep(1) modulator = dialog.project_manager.modulators[0] # type: Modulator sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True) sender.client_port = rcv_port sender.send_raw_data(modulator.modulate("1" * 352), 1) time.sleep(0.5) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) while not any("Waiting for message 2" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for simulator wait for message 2") time.sleep(1) sender.send_raw_data(modulator.modulate("10" * 176), 1) time.sleep(0.5) sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1) while not any("Mismatch for label:" in msg for msg in dialog.simulator.log_messages): logger.debug("Waiting for mismatching message") time.sleep(1) QTest.qWait(250) QApplication.processEvents() QTest.qWait(100) simulator_log = dialog.ui.textEditSimulation.toPlainText() self.assertIn("Received message 1", simulator_log) self.assertIn("preamble: 11111111", simulator_log) self.assertIn("Mismatch for label: preamble", simulator_log) dialog.close()