Buttplug sex toy control library

test: Move and update integration tests

+202 -226
+1
Cargo.toml
··· 14 14 "crates/buttplug_server_hwmgr_serial", 15 15 "crates/buttplug_server_hwmgr_websocket", 16 16 "crates/buttplug_server_hwmgr_xinput", 17 + "crates/buttplug_tests", 17 18 "crates/buttplug_transport_websocket_tungstenite", 18 19 ] 19 20
+1
buttplug/tests/mod.rs crates/buttplug_tests/tests/mod.rs
··· 1 1 extern crate tracing; 2 + #[macro_use] 2 3 extern crate log; 3 4 pub mod util;
+12 -12
buttplug/tests/test_client.rs crates/buttplug_tests/tests/test_client.rs
··· 51 51 } 52 52 } 53 53 54 - #[cfg(feature = "server")] 54 + 55 55 #[tokio::test] 56 56 async fn test_failing_connection() { 57 57 let client = ButtplugClient::new("Test Client"); ··· 61 61 .is_err()); 62 62 } 63 63 64 - #[cfg(feature = "server")] 64 + 65 65 #[tokio::test] 66 66 async fn test_disconnect_status() { 67 67 let client = test_client().await; ··· 69 69 assert!(!client.connected()); 70 70 } 71 71 72 - #[cfg(feature = "server")] 72 + 73 73 #[tokio::test] 74 74 async fn test_double_disconnect() { 75 75 let client = test_client().await; ··· 77 77 assert!(client.disconnect().await.is_err()); 78 78 } 79 79 80 - #[cfg(feature = "server")] 80 + 81 81 #[tokio::test] 82 82 async fn test_connect_init() { 83 83 let client = test_client().await; 84 84 assert_eq!(client.server_name(), Some("Buttplug Server".to_owned())); 85 85 } 86 86 87 - #[cfg(feature = "server")] 87 + 88 88 #[tokio::test] 89 89 async fn test_client_connected_status() { 90 90 let client = test_client().await; ··· 95 95 assert!(!client.connected()); 96 96 } 97 97 98 - #[cfg(feature = "server")] 98 + 99 99 #[tokio::test] 100 100 async fn test_start_scanning() { 101 101 let (client, _) = test_client_with_device().await; 102 102 assert!(client.start_scanning().await.is_ok()); 103 103 } 104 104 105 - #[cfg(feature = "server")] 105 + 106 106 #[tokio::test] 107 107 #[ignore = "We may want to just call this Ok now?"] 108 108 async fn test_stop_scanning_when_not_scanning() { ··· 119 119 assert!(client.stop_scanning().await.is_err()); 120 120 } 121 121 122 - #[cfg(feature = "server")] 122 + 123 123 #[tokio::test] 124 124 async fn test_start_scanning_when_already_scanning() { 125 125 let client = test_client_with_delayed_device_manager().await; ··· 127 127 assert!(client.start_scanning().await.is_ok()); 128 128 } 129 129 130 - #[cfg(feature = "server")] 130 + 131 131 #[tokio::test] 132 132 async fn test_successive_start_scanning() { 133 133 let (client, _) = test_client_with_device().await; ··· 135 135 assert!(client.start_scanning().await.is_ok()); 136 136 } 137 137 138 - #[cfg(feature = "server")] 138 + 139 139 #[tokio::test] 140 140 async fn test_client_scanning_finished() { 141 141 let (client, _) = test_client_with_device().await; ··· 147 147 )); 148 148 } 149 149 150 - #[cfg(feature = "server")] 150 + 151 151 #[tokio::test] 152 152 async fn test_client_ping() { 153 153 let server = ButtplugServerBuilder::default() ··· 170 170 /* 171 171 // Tests both the stop all devices functionality, as well as both ends of the 172 172 // command range for is_in_command_range message validation. 173 - #[cfg(feature = "server")] 173 + 174 174 #[tokio::test] 175 175 async fn test_stop_all_devices_and_device_command_range() { 176 176 let (client, test_device) = test_client_with_device().await;
+18 -26
buttplug/tests/test_client_device.rs crates/buttplug_tests/tests/test_client_device.rs
··· 6 6 // for full license information. 7 7 8 8 mod util; 9 - use buttplug::{ 10 - client::{ButtplugClientDeviceEvent, ButtplugClientError, ButtplugClientEvent}, 11 - core::{ 9 + use buttplug_client::{ButtplugClientDeviceEvent, ButtplugClientError, ButtplugClientEvent}; 10 + use buttplug_core::{ 12 11 errors::ButtplugError, 13 12 message::{OutputType, Endpoint, FeatureType}, 14 - }, 15 - server::{ 13 + util::async_manager 14 + }; 15 + use buttplug_server_device_config::{load_protocol_configs, UserDeviceCustomization, DeviceDefinition, UserDeviceIdentifier, ServerDeviceFeature, ServerDeviceFeatureOutput}; 16 + use buttplug_server::{ 16 17 device::{ 17 - server_device_feature::{ServerDeviceFeature, ServerDeviceFeatureOutput}, 18 - configuration::{UserDeviceCustomization, DeviceDefinition, UserDeviceIdentifier}, 19 18 hardware::{HardwareCommand, HardwareWriteCmd}, 20 19 }, 21 - }, 22 - util::{async_manager, device_configuration::load_protocol_configs}, 23 20 }; 24 21 use futures::StreamExt; 25 22 use std::{collections::HashMap, sync::Arc, time::Duration}; ··· 32 29 }; 33 30 use uuid::Uuid; 34 31 35 - #[cfg(feature = "server")] 36 32 #[tokio::test] 37 33 async fn test_client_device_connected_status() { 38 34 let (client, device) = test_client_with_device().await; ··· 70 66 assert!(!client.connected()); 71 67 } 72 68 73 - #[cfg(feature = "server")] 69 + 74 70 #[tokio::test] 75 71 async fn test_client_device_client_disconnected_status() { 76 72 let (client, _) = test_client_with_device().await; ··· 108 104 } 109 105 } 110 106 111 - #[cfg(feature = "server")] 107 + 112 108 #[tokio::test] 113 109 async fn test_client_device_connected_no_event_listener() { 114 110 let (client, device) = test_client_with_device().await; ··· 132 128 sleep(Duration::from_millis(100)).await; 133 129 } 134 130 135 - #[cfg(feature = "server")] 131 + 136 132 #[tokio::test] 137 133 async fn test_client_device_invalid_command() { 138 - use buttplug::core::errors::ButtplugDeviceError; 134 + use buttplug_core::errors::ButtplugDeviceError; 139 135 let (client, _) = test_client_with_device().await; 140 136 141 137 let mut event_stream = client.event_stream(); ··· 160 156 )); 161 157 } 162 158 163 - #[cfg(feature = "server")] 159 + 164 160 #[tokio::test] 165 161 async fn test_client_repeated_deviceadded_message() { 166 - use buttplug::{ 167 - core::message::OkV0, 168 - server::message::{ButtplugClientMessageVariant, ButtplugServerMessageVariant}, 169 - }; 162 + use buttplug_core::message::OkV0; 163 + use buttplug_server::message::{ButtplugClientMessageVariant, ButtplugServerMessageVariant}; 170 164 171 165 let helper = Arc::new(util::channel_transport::ChannelClientTestHelper::new()); 172 166 helper.simulate_successful_connect().await; 173 167 let helper_clone = helper.clone(); 174 168 let mut event_stream = helper.client().event_stream(); 175 169 async_manager::spawn(async move { 176 - use buttplug::core::message::{ButtplugClientMessageV4, DeviceAddedV4}; 170 + use buttplug_core::message::{ButtplugClientMessageV4, DeviceAddedV4}; 177 171 178 172 assert!(matches!( 179 173 helper_clone.next_client_message().await, ··· 213 207 )); 214 208 } 215 209 216 - #[cfg(feature = "server")] 210 + 217 211 #[tokio::test] 218 212 async fn test_client_repeated_deviceremoved_message() { 219 - use buttplug::{ 220 - core::message::{DeviceRemovedV0, OkV0}, 221 - server::message::{ButtplugClientMessageVariant, ButtplugServerMessageVariant}, 222 - }; 213 + use buttplug_core::message::{DeviceRemovedV0, OkV0}; 214 + use buttplug_server::message::{ButtplugClientMessageVariant, ButtplugServerMessageVariant}; 223 215 224 216 let helper = Arc::new(util::channel_transport::ChannelClientTestHelper::new()); 225 217 helper.simulate_successful_connect().await; 226 218 let helper_clone = helper.clone(); 227 219 let mut event_stream = helper.client().event_stream(); 228 220 async_manager::spawn(async move { 229 - use buttplug::core::message::{ButtplugClientMessageV4, DeviceAddedV4}; 221 + use buttplug_core::message::{ButtplugClientMessageV4, DeviceAddedV4}; 230 222 231 223 assert!(matches!( 232 224 helper_clone.next_client_message().await,
+7 -8
buttplug/tests/test_device_config.rs crates/buttplug_tests/tests/test_device_config.rs
··· 6 6 // for full license information. 7 7 8 8 mod util; 9 - extern crate buttplug; 10 9 11 - use buttplug::util::device_configuration::load_protocol_configs; 10 + use buttplug_server_device_config::load_protocol_configs; 12 11 use tokio_test::assert_ok; 13 12 14 13 const BASE_CONFIG_JSON: &str = r#" ··· 85 84 } 86 85 "#; 87 86 88 - #[cfg(feature = "server")] 87 + 89 88 #[tokio::test] 90 89 async fn test_valid_null_version_config() { 91 90 assert_ok!(load_protocol_configs( ··· 95 94 )); 96 95 } 97 96 98 - #[cfg(feature = "server")] 97 + 99 98 #[tokio::test] 100 99 async fn test_valid_null_user_config() { 101 100 assert_ok!(load_protocol_configs( ··· 105 104 )); 106 105 } 107 106 108 - #[cfg(feature = "server")] 107 + 109 108 #[tokio::test] 110 109 async fn test_invalid_null_version_config() { 111 110 assert!(load_protocol_configs( ··· 116 115 .is_err()); 117 116 } 118 117 119 - #[cfg(feature = "server")] 118 + 120 119 #[tokio::test] 121 120 #[ignore = "Still need to update for new message format"] 122 121 async fn test_basic_device_config() { 123 122 assert!(load_protocol_configs(&Some(BASE_CONFIG_JSON.to_owned()), &None, false).is_ok()); 124 123 } 125 124 126 - #[cfg(feature = "server")] 125 + 127 126 #[tokio::test] 128 127 async fn test_valid_user_config() { 129 128 let user_config_json = r#" ··· 195 194 .is_err()); 196 195 } 197 196 198 - #[cfg(feature = "server")] 197 + 199 198 #[tokio::test] 200 199 async fn test_invalid_step_range_device_config_wrong_range_length() { 201 200 let user_config_json = r#"
+3 -3
buttplug/tests/test_device_protocols.rs crates/buttplug_tests/tests/test_device_protocols.rs
··· 131 131 #[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 132 132 #[tokio::test] 133 133 async fn test_device_protocols_embedded_v4(test_file: &str) { 134 - tracing_subscriber::fmt::init(); 134 + //tracing_subscriber::fmt::init(); 135 135 util::device_test::client::client_v4::run_embedded_test_case(&load_test_case(test_file).await) 136 136 .await; 137 137 } ··· 252 252 tracing_subscriber::fmt::init(); 253 253 util::device_test::client::client_v4::run_json_test_case(&load_test_case(test_file).await).await; 254 254 } 255 - 255 + /* 256 256 //#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 257 257 #[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 258 258 #[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] ··· 488 488 util::device_test::client::client_v3::run_json_test_case(&load_test_case(test_file).await).await; 489 489 } 490 490 491 - /* 491 + 492 492 493 493 //#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 494 494 #[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")]
+3 -6
buttplug/tests/test_message_downgrades.rs crates/buttplug_tests/tests/test_message_downgrades.rs
··· 5 5 // Licensed under the BSD 3-Clause license. See LICENSE file in the project root 6 6 // for full license information. 7 7 8 - extern crate buttplug; 9 8 mod util; 10 9 use std::time::Duration; 11 10 12 11 pub use util::test_device_manager::check_test_recv_value; 13 12 14 - use buttplug::{ 15 - core::message::{ 13 + use buttplug_core::message::{ 16 14 serializer::{ButtplugMessageSerializer, ButtplugSerializedMessage}, 17 15 Endpoint, 18 16 StartScanningV0, 19 - }, 20 - server::{ 17 + }; 18 + use buttplug_server::{ 21 19 device::hardware::{HardwareCommand, HardwareWriteCmd}, 22 20 message::{serializer::ButtplugServerJSONSerializer, ButtplugClientMessageVariant}, 23 21 ButtplugServerBuilder, 24 - }, 25 22 }; 26 23 use futures::{pin_mut, StreamExt}; 27 24 use util::test_server_with_device;
+6 -8
buttplug/tests/test_serializers.rs crates/buttplug_tests/tests/test_serializers.rs
··· 7 7 8 8 mod util; 9 9 10 - use buttplug::{ 11 - client::ButtplugClientError, 12 - core::{ 10 + use buttplug_client::ButtplugClientError; 11 + use buttplug_core::{ 13 12 connector::transport::ButtplugTransportIncomingMessage, 14 13 errors::{ButtplugError, ButtplugUnknownError}, 15 14 message::{ ··· 20 19 ErrorV0, 21 20 BUTTPLUG_CURRENT_API_MAJOR_VERSION, 22 21 }, 23 - }, 24 - server::message::{ 22 + util::async_manager, 23 + }; 24 + use buttplug_server::message::{ 25 25 ButtplugClientMessageVariant, 26 26 ButtplugServerMessageVariant, 27 27 DeviceListV3, 28 28 ServerInfoV2, 29 - }, 30 - util::async_manager, 31 29 }; 32 30 use std::sync::Arc; 33 31 use tokio::sync::Notify; ··· 90 88 assert!(matches!( 91 89 helper.client().start_scanning().await.unwrap_err(), 92 90 ButtplugClientError::ButtplugError(ButtplugError::ButtplugUnknownError( 93 - buttplug::core::errors::ButtplugUnknownError::NoDeviceCommManagers 91 + buttplug_core::errors::ButtplugUnknownError::NoDeviceCommManagers 94 92 )) 95 93 )); 96 94 }
+3 -5
buttplug/tests/test_server.rs crates/buttplug_tests/tests/test_server.rs
··· 18 18 test_server_with_device, 19 19 }; 20 20 21 - use buttplug::{ 22 - core::{ 21 + use buttplug_core::{ 23 22 errors::{ButtplugDeviceError, ButtplugError, ButtplugHandshakeError}, 24 23 message::{ 25 24 OutputCmdV4, ··· 37 36 BUTTPLUG_CURRENT_API_MAJOR_VERSION, 38 37 BUTTPLUG_CURRENT_API_MINOR_VERSION, 39 38 }, 40 - }, 41 - server::{ 39 + }; 40 + use buttplug_server::{ 42 41 device::{ 43 42 hardware::{HardwareCommand, HardwareWriteCmd}, 44 43 ServerDeviceManagerBuilder, ··· 56 55 }, 57 56 ButtplugServer, 58 57 ButtplugServerBuilder, 59 - }, 60 58 }; 61 59 use futures::{pin_mut, Stream, StreamExt}; 62 60 use std::time::Duration;
+3 -5
buttplug/tests/test_server_device.rs crates/buttplug_tests/tests/test_server_device.rs
··· 6 6 // for full license information. 7 7 8 8 mod util; 9 - use buttplug::{ 10 - core::{ 9 + use buttplug_core::{ 11 10 message::{ 12 11 ButtplugServerMessageV4, 13 12 RequestServerInfoV4, ··· 15 14 BUTTPLUG_CURRENT_API_MAJOR_VERSION, 16 15 BUTTPLUG_CURRENT_API_MINOR_VERSION, 17 16 }, 18 - }, 19 - server::message::{ 17 + }; 18 + use buttplug_server::message::{ 20 19 ButtplugClientMessageVariant, 21 20 ButtplugServerMessageVariant, 22 - }, 23 21 }; 24 22 25 23 use futures::{pin_mut, StreamExt};
buttplug/tests/test_websocket_connectors.rs crates/buttplug_tests/tests/test_websocket_connectors.rs
buttplug/tests/test_websocket_device_comm_manager.rs crates/buttplug_tests/tests/test_websocket_device_comm_manager.rs
+7 -8
buttplug/tests/util/channel_transport.rs crates/buttplug_tests/tests/util/channel_transport.rs
··· 8 8 #![allow(dead_code)] 9 9 10 10 use crate::util::ButtplugTestServer; 11 - use buttplug::{ 12 - client::{ 11 + use buttplug_client::{ 13 12 connector::ButtplugRemoteClientConnector, 14 13 serializer::ButtplugClientJSONSerializer, 15 14 ButtplugClient, 16 15 ButtplugClientError, 17 - }, 18 - core::{ 16 + }; 17 + use buttplug_core::{ 19 18 connector::{ 20 19 transport::{ButtplugConnectorTransport, ButtplugTransportIncomingMessage}, 21 20 ButtplugConnectorError, ··· 30 29 BUTTPLUG_CURRENT_API_MAJOR_VERSION, 31 30 BUTTPLUG_CURRENT_API_MINOR_VERSION, 32 31 }, 33 - }, 34 - server::{ 32 + util::async_manager, 33 + 34 + }; 35 + use buttplug_server::{ 35 36 connector::ButtplugRemoteServerConnector, 36 37 message::{ 37 38 serializer::ButtplugServerJSONSerializer, 38 39 ButtplugClientMessageVariant, 39 40 ButtplugServerMessageVariant, 40 41 }, 41 - }, 42 - util::async_manager, 43 42 }; 44 43 use futures::{ 45 44 future::{self, BoxFuture},
+2 -4
buttplug/tests/util/delay_device_communication_manager.rs crates/buttplug_tests/tests/util/delay_device_communication_manager.rs
··· 5 5 // Licensed under the BSD 3-Clause license. See LICENSE file in the project root 6 6 // for full license information. 7 7 8 - use buttplug::{ 9 - core::ButtplugResultFuture, 10 - server::device::hardware::communication::{ 8 + use buttplug_core::ButtplugResultFuture; 9 + use buttplug_server::device::hardware::communication::{ 11 10 HardwareCommunicationManager, 12 11 HardwareCommunicationManagerBuilder, 13 12 HardwareCommunicationManagerEvent, 14 - }, 15 13 }; 16 14 use futures::FutureExt; 17 15 use std::sync::{
buttplug/tests/util/device_test/client/client_v0/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v0/mod.rs
buttplug/tests/util/device_test/client/client_v1/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v1/mod.rs
+2 -5
buttplug/tests/util/device_test/client/client_v2/client.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/client.rs
··· 9 9 10 10 use super::client_event_loop::{ButtplugClientEventLoop, ButtplugClientRequest}; 11 11 use super::device::ButtplugClientDevice; 12 - use buttplug::server::message::RequestServerInfoV1; 13 - use buttplug::{ 14 - core::{ 12 + use buttplug_server::message::{RequestServerInfoV1, ButtplugClientMessageV2, ButtplugServerMessageV2}; 13 + use buttplug_core::{ 15 14 connector::{ButtplugConnector, ButtplugConnectorError, ButtplugConnectorFuture}, 16 15 errors::{ButtplugError, ButtplugHandshakeError}, 17 16 message::{ ··· 22 21 StopAllDevicesV0, 23 22 StopScanningV0, 24 23 }, 25 - }, 26 - server::message::{ButtplugClientMessageV2, ButtplugServerMessageV2}, 27 24 util::{ 28 25 async_manager, 29 26 future::{ButtplugFuture, ButtplugFutureStateShared},
+3 -5
buttplug/tests/util/device_test/client/client_v2/client_event_loop.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/client_event_loop.rs
··· 12 12 client_message_sorter::ClientMessageSorter, 13 13 device::{ButtplugClientDevice, ButtplugClientDeviceEvent}, 14 14 }; 15 - use buttplug::{ 16 - core::{ 15 + use buttplug_core::{ 17 16 connector::{ButtplugConnector, ButtplugConnectorStateShared}, 18 17 errors::{ButtplugDeviceError, ButtplugError}, 19 18 message::ButtplugMessageValidator, 20 - }, 21 - server::message::{ 19 + }; 20 + use buttplug_server::message::{ 22 21 ButtplugClientMessageV2, 23 22 ButtplugServerMessageV2, 24 23 DeviceListV2, 25 24 DeviceMessageInfoV2, 26 - }, 27 25 }; 28 26 use dashmap::DashMap; 29 27 use log::*;
+2 -2
buttplug/tests/util/device_test/client/client_v2/client_message_sorter.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/client_message_sorter.rs
··· 12 12 ButtplugClientMessageFuturePair, 13 13 ButtplugServerMessageStateShared, 14 14 }; 15 - use buttplug::core::message::{ButtplugMessage, ButtplugMessageValidator}; 16 - use buttplug::server::message::ButtplugServerMessageV2; 15 + use buttplug_core::message::{ButtplugMessage, ButtplugMessageValidator}; 16 + use buttplug_server::message::ButtplugServerMessageV2; 17 17 use dashmap::DashMap; 18 18 use log::*; 19 19 use std::sync::{
+4 -6
buttplug/tests/util/device_test/client/client_v2/device.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/device.rs
··· 16 16 }, 17 17 client_event_loop::ButtplugClientRequest, 18 18 }; 19 - use buttplug::{ 20 - core::{ 19 + use buttplug_core::{ 21 20 connector::ButtplugConnectorError, 22 21 errors::{ButtplugDeviceError, ButtplugError, ButtplugMessageError}, 23 22 message::{ButtplugMessage, StopDeviceCmdV0}, 24 - }, 25 - server::message::{ 23 + util::stream::convert_broadcast_receiver_to_stream, 24 + }; 25 + use buttplug_server::message::{ 26 26 BatteryLevelCmdV2, 27 27 ButtplugClientMessageV2, 28 28 ButtplugDeviceMessageNameV2, ··· 35 35 VectorSubcommandV1, 36 36 VibrateCmdV1, 37 37 VibrateSubcommandV1, 38 - }, 39 - util::stream::convert_broadcast_receiver_to_stream, 40 38 }; 41 39 use futures::{future, Stream}; 42 40 use getset::Getters;
+8 -10
buttplug/tests/util/device_test/client/client_v2/in_process_connector.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/in_process_connector.rs
··· 7 7 8 8 //! In-process communication between clients and servers 9 9 10 - use buttplug::{ 11 - core::{ 10 + use buttplug_core::{ 12 11 connector::{ButtplugConnector, ButtplugConnectorError, ButtplugConnectorResultFuture}, 13 12 errors::{ButtplugError, ButtplugMessageError}, 14 - }, 15 - server::{ 13 + util::async_manager, 14 + }; 15 + use buttplug_server::{ 16 16 message::{ButtplugClientMessageV2, ButtplugServerMessageV2, ButtplugServerMessageVariant}, 17 17 ButtplugServer, 18 18 ButtplugServerBuilder, 19 - }, 20 - util::async_manager, 21 19 }; 22 20 use futures::{ 23 21 future::{self, BoxFuture, FutureExt}, ··· 69 67 /// develop (and we highly recommend developing that way), and also an easy way to get users up and 70 68 /// running as quickly as possible, we recommend also including some sort of IPC Connector in order 71 69 /// for your application to connect to newer servers when they come out. 72 - #[cfg(feature = "server")] 70 + 73 71 pub struct ButtplugInProcessClientConnector { 74 72 /// Internal server object for the embedded connector. 75 73 server: Arc<ButtplugServer>, ··· 77 75 connected: Arc<AtomicBool>, 78 76 } 79 77 80 - #[cfg(feature = "server")] 78 + 81 79 impl Default for ButtplugInProcessClientConnector { 82 80 fn default() -> Self { 83 81 ButtplugInProcessClientConnectorBuilder::default().finish() 84 82 } 85 83 } 86 84 87 - #[cfg(feature = "server")] 85 + 88 86 impl ButtplugInProcessClientConnector { 89 87 /// Creates a new in-process connector, with a server instance. 90 88 /// ··· 106 104 } 107 105 } 108 106 109 - #[cfg(feature = "server")] 107 + 110 108 impl ButtplugConnector<ButtplugClientMessageV2, ButtplugServerMessageV2> 111 109 for ButtplugInProcessClientConnector 112 110 {
+4 -4
buttplug/tests/util/device_test/client/client_v2/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v2/mod.rs
··· 9 9 ButtplugTestServer, 10 10 TestDeviceChannelHost, 11 11 }; 12 - use buttplug::{ 13 - server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}, 14 - util::{async_manager, device_configuration::load_protocol_configs}, 15 - }; 12 + use buttplug_server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}; 13 + use buttplug_core::util::async_manager; 14 + use buttplug_server_device_config::load_protocol_configs; 15 + 16 16 use client::{ButtplugClient, ButtplugClientEvent}; 17 17 use device::{ButtplugClientDevice, LinearCommand, RotateCommand, VibrateCommand}; 18 18 use in_process_connector::ButtplugInProcessClientConnectorBuilder;
+3 -6
buttplug/tests/util/device_test/client/client_v3/client.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/client.rs
··· 7 7 8 8 use super::client_event_loop::{ButtplugClientEventLoop, ButtplugClientRequest}; 9 9 pub use super::device::ButtplugClientDevice; 10 - use buttplug::{ 11 - core::{ 10 + use buttplug_core::{ 12 11 connector::{ButtplugConnector, ButtplugConnectorError, ButtplugConnectorFuture}, 13 12 errors::{ButtplugError, ButtplugHandshakeError}, 14 13 message::{ ··· 18 17 StartScanningV0, 19 18 StopAllDevicesV0, 20 19 StopScanningV0, 21 - }, 22 - }, 23 - server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3, RequestServerInfoV1}, 24 - util::{ 20 + }, util::{ 25 21 async_manager, 26 22 future::{ButtplugFuture, ButtplugFutureStateShared}, 27 23 stream::convert_broadcast_receiver_to_stream, 28 24 }, 29 25 }; 26 + use buttplug_server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3, RequestServerInfoV1}; 30 27 use dashmap::DashMap; 31 28 use futures::{ 32 29 future::{self, BoxFuture, FutureExt},
+3 -5
buttplug/tests/util/device_test/client/client_v3/client_event_loop.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/client_event_loop.rs
··· 13 13 device::{ButtplugClientDevice, ButtplugClientDeviceEvent}, 14 14 ButtplugClientEvent, 15 15 }; 16 - use buttplug::{ 17 - core::{ 16 + use buttplug_core::{ 18 17 connector::{ButtplugConnector, ButtplugConnectorStateShared}, 19 18 errors::{ButtplugDeviceError, ButtplugError}, 20 19 message::{ButtplugDeviceMessage, ButtplugMessageValidator}, 21 - }, 22 - server::message::{ 20 + }; 21 + use buttplug_server::message::{ 23 22 ButtplugClientMessageV3, 24 23 ButtplugServerMessageV3, 25 24 DeviceListV3, 26 25 DeviceMessageInfoV3, 27 - }, 28 26 }; 29 27 use dashmap::DashMap; 30 28 use futures::FutureExt;
+3 -4
buttplug/tests/util/device_test/client/client_v3/client_message_sorter.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/client_message_sorter.rs
··· 12 12 ButtplugClientMessageFuturePair, 13 13 ButtplugServerMessageStateShared, 14 14 }; 15 - use buttplug::{ 16 - core::message::{ButtplugMessage, ButtplugMessageValidator}, 17 - server::message::ButtplugServerMessageV3, 18 - }; 15 + use buttplug_core::message::{ButtplugMessage, ButtplugMessageValidator}; 16 + use buttplug_server::message::ButtplugServerMessageV3; 17 + 19 18 use dashmap::DashMap; 20 19 use log::*; 21 20 use std::sync::{
+5 -6
buttplug/tests/util/device_test/client/client_v3/connector/in_process_connector.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/connector/in_process_connector.rs
··· 7 7 8 8 //! In-process communication between clients and servers 9 9 10 - use buttplug::{ 11 - core::{ 10 + use buttplug_core::{ 12 11 connector::{ButtplugConnector, ButtplugConnectorError, ButtplugConnectorResultFuture}, 13 12 errors::{ButtplugError, ButtplugMessageError}, 14 - }, 15 - server::{ 13 + util::async_manager, 14 + 15 + }; 16 + use buttplug_server::{ 16 17 message::{ButtplugClientMessageV3, ButtplugServerMessageV3, ButtplugServerMessageVariant}, 17 18 ButtplugServer, 18 19 ButtplugServerBuilder, 19 - }, 20 - util::async_manager, 21 20 }; 22 21 use futures::{ 23 22 future::{self, BoxFuture, FutureExt},
-23
buttplug/tests/util/device_test/client/client_v3/connector/mod.rs
··· 1 - #[cfg(all(feature = "server", feature = "client", not(feature = "wasm")))] 2 - mod in_process_connector; 3 - 4 - #[cfg(all(feature = "server", feature = "client", not(feature = "wasm")))] 5 - pub use in_process_connector::{ 6 - ButtplugInProcessClientConnectorBuilder, 7 - }; 8 - 9 - use buttplug::{ 10 - client::serializer::ButtplugClientJSONSerializer, 11 - core::connector::ButtplugRemoteConnector, 12 - server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3}, 13 - }; 14 - 15 - pub type ButtplugRemoteClientConnector< 16 - TransportType, 17 - SerializerType = ButtplugClientJSONSerializer, 18 - > = ButtplugRemoteConnector< 19 - TransportType, 20 - SerializerType, 21 - ButtplugClientMessageV3, 22 - ButtplugServerMessageV3, 23 - >;
+4 -6
buttplug/tests/util/device_test/client/client_v3/device.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/device.rs
··· 12 12 ButtplugClientMessageSender, 13 13 ButtplugClientResultFuture, 14 14 }; 15 - use buttplug::{ 16 - core::{ 15 + use buttplug_core::{ 17 16 errors::{ButtplugDeviceError, ButtplugError, ButtplugMessageError}, 18 17 message::{OutputType, InputType, StopDeviceCmdV0}, 19 - }, 20 - server::message::{ 18 + util::stream::convert_broadcast_receiver_to_stream, 19 + }; 20 + use buttplug_server::message::{ 21 21 ButtplugDeviceMessageNameV3, 22 22 ButtplugServerMessageV3, 23 23 ClientDeviceMessageAttributesV3, ··· 32 32 SensorSubscribeCmdV3, 33 33 SensorUnsubscribeCmdV3, 34 34 VectorSubcommandV1, 35 - }, 36 - util::stream::convert_broadcast_receiver_to_stream, 37 35 }; 38 36 use futures::{FutureExt, Stream}; 39 37 use getset::{CopyGetters, Getters};
+4 -5
buttplug/tests/util/device_test/client/client_v3/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/mod.rs
··· 11 11 TestDeviceChannelHost, 12 12 }; 13 13 use client::{ButtplugClient, ButtplugClientDevice, ButtplugClientEvent}; 14 - use connector::ButtplugInProcessClientConnectorBuilder; 14 + use crate::util::device_test::client::client_v3::connector::ButtplugInProcessClientConnectorBuilder; 15 15 use device::{LinearCommand, RotateCommand, ScalarCommand, ScalarValueCommand}; 16 16 17 - use buttplug::{ 18 - server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}, 19 - util::{async_manager, device_configuration::load_protocol_configs}, 20 - }; 17 + use buttplug_server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}; 18 + use buttplug_core::util::async_manager; 19 + use buttplug_server_device_config::load_protocol_configs; 21 20 use tokio::sync::Notify; 22 21 23 22 use super::super::{
+4 -5
buttplug/tests/util/device_test/client/client_v3/serializer/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v3/serializer/mod.rs
··· 1 - use buttplug::{ 2 - core::message::{ 1 + use buttplug_core::message::{ 3 2 serializer::{ 4 3 json_serializer::{create_message_validator, deserialize_to_message, vec_to_protocol_json}, 5 4 ButtplugMessageSerializer, ··· 8 7 }, 9 8 ButtplugMessage, 10 9 ButtplugMessageFinalizer, 11 - }, 12 - server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3}, 13 - }; 10 + }; 11 + use buttplug_server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3}; 12 + 14 13 use jsonschema::Validator; 15 14 use serde::{Deserialize, Serialize}; 16 15 use std::fmt::Debug;
+6 -8
buttplug/tests/util/device_test/client/client_v4/mod.rs crates/buttplug_tests/tests/util/device_test/client/client_v4/mod.rs
··· 3 3 ButtplugTestServer, 4 4 TestDeviceChannelHost, 5 5 }; 6 - use buttplug::{ 7 - client::{ 6 + use buttplug_client::{ 8 7 client_device_feature::ClientDeviceFeature, 9 - connector::ButtplugInProcessClientConnectorBuilder, 10 8 ButtplugClient, 11 9 ButtplugClientDevice, 12 10 ButtplugClientEvent, 13 - }, 14 - core::message::{OutputType, FeatureType}, 15 - server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}, 16 - util::{async_manager, device_configuration::load_protocol_configs}, 17 - }; 11 + }; 12 + use buttplug_client_in_process::ButtplugInProcessClientConnectorBuilder; 13 + use buttplug_server_device_config::load_protocol_configs; 14 + use buttplug_core::{message::{OutputType, FeatureType}, util::{async_manager,}}; 15 + use buttplug_server::{device::ServerDeviceManagerBuilder, ButtplugServer, ButtplugServerBuilder}; 18 16 use tokio::sync::Notify; 19 17 20 18 use super::super::{
buttplug/tests/util/device_test/client/mod.rs crates/buttplug_tests/tests/util/device_test/client/mod.rs
+1 -3
buttplug/tests/util/device_test/connector/channel_transport.rs crates/buttplug_tests/tests/util/device_test/connector/channel_transport.rs
··· 1 - use buttplug::{ 2 - core::{ 1 + use buttplug_core::{ 3 2 connector::{ 4 3 transport::{ButtplugConnectorTransport, ButtplugTransportIncomingMessage}, 5 4 ButtplugConnectorError, 6 5 ButtplugConnectorResultFuture, 7 6 }, 8 7 message::serializer::ButtplugSerializedMessage, 9 - }, 10 8 util::async_manager, 11 9 }; 12 10 use futures::{future::BoxFuture, FutureExt};
+5 -7
buttplug/tests/util/device_test/connector/mod.rs crates/buttplug_tests/tests/util/device_test/connector/mod.rs
··· 1 1 pub mod channel_transport; 2 - use buttplug::{ 3 - client::{ 2 + use buttplug_client::{ 4 3 connector::ButtplugRemoteClientConnector, 5 4 serializer::{ButtplugClientJSONSerializer, ButtplugClientJSONSerializerImpl}, 6 - }, 7 - core::{ 5 + }; 6 + use buttplug_core::{ 8 7 connector::ButtplugRemoteConnector, 9 8 message::serializer::{ 10 9 ButtplugMessageSerializer, 11 10 ButtplugSerializedMessage, 12 11 ButtplugSerializerError, 13 12 }, 14 - }, 15 - server::{ 13 + }; 14 + use buttplug_server::{ 16 15 connector::ButtplugRemoteServerConnector, 17 16 message::{ 18 17 serializer::ButtplugServerJSONSerializer, ··· 25 24 ButtplugServerMessageV2, 26 25 ButtplugServerMessageV3, 27 26 }, 28 - }, 29 27 }; 30 28 use std::sync::Arc; 31 29 use tokio::sync::{mpsc, Notify};
buttplug/tests/util/device_test/device_test_case/config/lovense_ridge_user_config.json crates/buttplug_tests/tests/util/device_test/device_test_case/config/lovense_ridge_user_config.json
buttplug/tests/util/device_test/device_test_case/config/lovense_ridge_user_config_invalid_range.json crates/buttplug_tests/tests/util/device_test/device_test_case/config/lovense_ridge_user_config_invalid_range.json
buttplug/tests/util/device_test/device_test_case/config/tcode_linear_and_vibrate_user_config.json crates/buttplug_tests/tests/util/device_test/device_test_case/config/tcode_linear_and_vibrate_user_config.json
buttplug/tests/util/device_test/device_test_case/test_activejoy_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_activejoy_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_adrienlastic_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_adrienlastic_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_amorelie_joy_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_amorelie_joy_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_aneros_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_aneros_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_ankni_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_ankni_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_ankni_protocol_no_handshake.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_ankni_protocol_no_handshake.yaml
buttplug/tests/util/device_test/device_test_case/test_bananasome_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_bananasome_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_cachito_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_cachito_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_cowgirl_cone_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_cowgirl_cone_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_cowgirl_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_cowgirl_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_cupido_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_cupido_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_deepsire.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_deepsire.yaml
buttplug/tests/util/device_test/device_test_case/test_feelingso.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_feelingso.yaml
buttplug/tests/util/device_test/device_test_case/test_fleshy_thrust_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_fleshy_thrust_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_foreo_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_foreo_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_fox_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_fox_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_fredorch_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_fredorch_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_galaku.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_galaku.yaml
buttplug/tests/util/device_test/device_test_case/test_galaku_nebula.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_galaku_nebula.yaml
buttplug/tests/util/device_test/device_test_case/test_hgod_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hgod_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_hismith_auxfun_box.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hismith_auxfun_box.yaml
buttplug/tests/util/device_test/device_test_case/test_hismith_sinloli.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hismith_sinloli.yaml
buttplug/tests/util/device_test/device_test_case/test_hismith_thrusting_cup.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hismith_thrusting_cup.yaml
buttplug/tests/util/device_test/device_test_case/test_hismith_v4.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hismith_v4.yaml
buttplug/tests/util/device_test/device_test_case/test_hismith_wildolo.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_hismith_wildolo.yaml
buttplug/tests/util/device_test/device_test_case/test_itoys_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_itoys_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_jejoue_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_jejoue_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_joyhub_moonhorn.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_joyhub_moonhorn.yaml
buttplug/tests/util/device_test/device_test_case/test_joyhub_petalwish.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_joyhub_petalwish.yaml
buttplug/tests/util/device_test/device_test_case/test_joyhub_petalwish_compat.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_joyhub_petalwish_compat.yaml
buttplug/tests/util/device_test/device_test_case/test_joyhub_roselin.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_joyhub_roselin.yaml
buttplug/tests/util/device_test/device_test_case/test_kiiroo_prowand.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_kiiroo_prowand.yaml
buttplug/tests/util/device_test/device_test_case/test_kiiroo_spot.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_kiiroo_spot.yaml
buttplug/tests/util/device_test/device_test_case/test_lelo_f1sv1.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lelo_f1sv1.yaml
buttplug/tests/util/device_test/device_test_case/test_lelo_f1sv2.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lelo_f1sv2.yaml
buttplug/tests/util/device_test/device_test_case/test_lelo_idawave.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lelo_idawave.yaml
buttplug/tests/util/device_test/device_test_case/test_lelo_tianiharmony.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lelo_tianiharmony.yaml
buttplug/tests/util/device_test/device_test_case/test_leten_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_leten_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_loob_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_loob_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_lovehoney_desire_egg.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovehoney_desire_egg.yaml
buttplug/tests/util/device_test/device_test_case/test_lovehoney_desire_prostate.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovehoney_desire_prostate.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_battery.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_battery.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_battery_non_default.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_battery_non_default.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_edge.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_edge.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_flexer_fw2.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_flexer_fw2.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_flexer_fw3.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_flexer_fw3.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_max.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_max.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_nora.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_nora.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_osci3.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_osci3.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_ridge.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_ridge.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_ridge_user_config.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_ridge_user_config.yaml
buttplug/tests/util/device_test/device_test_case/test_lovense_single_vibrator.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_lovense_single_vibrator.yaml
buttplug/tests/util/device_test/device_test_case/test_luvmazer_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_luvmazer_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_1_magic_cell.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_1_magic_cell.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_2_eidolon.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_2_eidolon.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_2_equinox.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_2_equinox.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_3_krush.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_3_krush.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_4_bobi.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_4_bobi.yaml
buttplug/tests/util/device_test/device_test_case/test_magic_motion_4_nyx.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_magic_motion_4_nyx.yaml
buttplug/tests/util/device_test/device_test_case/test_meese_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_meese_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_metaxsire_cali.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_metaxsire_cali.yaml
buttplug/tests/util/device_test/device_test_case/test_metaxsire_nolan.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_metaxsire_nolan.yaml
buttplug/tests/util/device_test/device_test_case/test_metaxsire_olis.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_metaxsire_olis.yaml
buttplug/tests/util/device_test/device_test_case/test_metaxsire_rex.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_metaxsire_rex.yaml
buttplug/tests/util/device_test/device_test_case/test_mizzzee_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_mizzzee_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_mizzzee_v2_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_mizzzee_v2_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_mizzzee_v3_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_mizzzee_v3_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_motorbunny_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_motorbunny_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_mysteryvibe.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_mysteryvibe.yaml
buttplug/tests/util/device_test/device_test_case/test_nexus_revo.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_nexus_revo.yaml
buttplug/tests/util/device_test/device_test_case/test_nobra_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_nobra_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_omobo_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_omobo_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_pink_punch_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_pink_punch_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_sakuraneko_koikoi.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_sakuraneko_koikoi.yaml
buttplug/tests/util/device_test/device_test_case/test_sakuraneko_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_sakuraneko_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_satisfyer_dual_vibrator.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_satisfyer_dual_vibrator.yaml
buttplug/tests/util/device_test/device_test_case/test_satisfyer_single_vibrator.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_satisfyer_single_vibrator.yaml
buttplug/tests/util/device_test/device_test_case/test_satisfyer_triple_vibrator.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_satisfyer_triple_vibrator.yaml
buttplug/tests/util/device_test/device_test_case/test_sensee_capsule.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_sensee_capsule.yaml
buttplug/tests/util/device_test/device_test_case/test_sensee_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_sensee_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_serveu_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_serveu_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_sexverse_lg389_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_sexverse_lg389_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_alex.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_alex.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_alex_v2.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_alex_v2.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_barnard.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_barnard.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_cocopro.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_cocopro.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_ella.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_ella.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_iker.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_iker.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_mora_neo.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_mora_neo.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_pulse.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_pulse.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_sam2.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_sam2.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_theodore.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_theodore.yaml
buttplug/tests/util/device_test/device_test_case/test_svakom_vivianna.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_svakom_vivianna.yaml
buttplug/tests/util/device_test/device_test_case/test_synchro_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_synchro_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_tcode_linear_and_vibrate.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_tcode_linear_and_vibrate.yaml
buttplug/tests/util/device_test/device_test_case/test_tryfun_blackhole_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_tryfun_blackhole_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_tryfun_meta2_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_tryfun_meta2_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_tryfun_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_tryfun_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_tryfun_surge.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_tryfun_surge.yaml
buttplug/tests/util/device_test/device_test_case/test_user_config_display_name.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_user_config_display_name.yaml
buttplug/tests/util/device_test/device_test_case/test_vorze_cyclone.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_vorze_cyclone.yaml
buttplug/tests/util/device_test/device_test_case/test_vorze_ufo.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_vorze_ufo.yaml
buttplug/tests/util/device_test/device_test_case/test_vorze_ufo_tw.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_vorze_ufo_tw.yaml
buttplug/tests/util/device_test/device_test_case/test_wetoy_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wetoy_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_wevibe_4plus.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wevibe_4plus.yaml
buttplug/tests/util/device_test/device_test_case/test_wevibe_chorus.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wevibe_chorus.yaml
buttplug/tests/util/device_test/device_test_case/test_wevibe_moxie.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wevibe_moxie.yaml
buttplug/tests/util/device_test/device_test_case/test_wevibe_pivot.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wevibe_pivot.yaml
buttplug/tests/util/device_test/device_test_case/test_wevibe_vector.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_wevibe_vector.yaml
buttplug/tests/util/device_test/device_test_case/test_xibao_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_xibao_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_xiuxiuda_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_xiuxiuda_protocol.yaml
buttplug/tests/util/device_test/device_test_case/test_xuanhuan_protocol.yaml crates/buttplug_tests/tests/util/device_test/device_test_case/test_xuanhuan_protocol.yaml
+2 -4
buttplug/tests/util/device_test/mod.rs crates/buttplug_tests/tests/util/device_test/mod.rs
··· 3 3 pub mod client; 4 4 pub mod connector; 5 5 use super::{TestDeviceIdentifier, TestHardwareEvent}; 6 - use buttplug::{ 7 - server::device::hardware::HardwareCommand, 8 - server::message::{ 6 + use buttplug_server::device::hardware::HardwareCommand; 7 + use buttplug_server::message::{ 9 8 RotationSubcommandV1, 10 9 ScalarSubcommandV3, 11 10 VectorSubcommandV1, 12 11 VibrateSubcommandV1, 13 - }, 14 12 }; 15 13 use serde::{Deserialize, Serialize}; 16 14
+4 -7
buttplug/tests/util/mod.rs crates/buttplug_tests/tests/util/mod.rs
··· 12 12 pub mod test_device_manager; 13 13 pub use delay_device_communication_manager::DelayDeviceCommunicationManagerBuilder; 14 14 pub mod channel_transport; 15 - use buttplug::{ 16 - client::connector::ButtplugInProcessClientConnectorBuilder, 17 - client::ButtplugClient, 18 - server::{ 15 + use buttplug_client::ButtplugClient; 16 + use buttplug_client_in_process::ButtplugInProcessClientConnectorBuilder; 17 + use buttplug_server_device_config::{load_protocol_configs, DeviceConfigurationManager}; 18 + use buttplug_server::{ 19 19 device::{ 20 - configuration::DeviceConfigurationManager, 21 20 hardware::communication::HardwareCommunicationManagerBuilder, 22 21 ServerDeviceManagerBuilder, 23 22 }, 24 23 ButtplugServer, 25 24 ButtplugServerBuilder, 26 - }, 27 - util::device_configuration::load_protocol_configs, 28 25 }; 29 26 pub use test_device_manager::{ 30 27 TestDeviceChannelHost,
+3 -3
buttplug/tests/util/test_device_manager/mod.rs crates/buttplug_tests/tests/util/test_device_manager/mod.rs
··· 6 6 // for full license information. 7 7 8 8 mod test_device; 9 - #[cfg(feature = "server")] 9 + 10 10 mod test_device_comm_manager; 11 11 12 - use buttplug::server::device::hardware::HardwareCommand; 12 + use buttplug_server::device::hardware::HardwareCommand; 13 13 use std::time::Duration; 14 14 pub use test_device::{TestDevice, TestDeviceChannelHost, TestHardwareEvent}; 15 - #[cfg(feature = "server")] 15 + 16 16 pub use test_device_comm_manager::{ 17 17 //new_bluetoothle_test_device, 18 18 TestDeviceCommunicationManagerBuilder,
+3 -6
buttplug/tests/util/test_device_manager/test_device.rs crates/buttplug_tests/tests/util/test_device_manager/test_device.rs
··· 5 5 // Licensed under the BSD 3-Clause license. See LICENSE file in the project root 6 6 // for full license information. 7 7 8 - use buttplug::{ 9 - core::{errors::ButtplugDeviceError, message::Endpoint}, 10 - server::device::{ 11 - configuration::ProtocolCommunicationSpecifier, 8 + use buttplug_core::{errors::ButtplugDeviceError, message::Endpoint, util::async_manager}; 9 + use buttplug_server_device_config::ProtocolCommunicationSpecifier; 10 + use buttplug_server::device::{ 12 11 hardware::{ 13 12 Hardware, 14 13 HardwareCommand, ··· 21 20 HardwareSubscribeCmd, 22 21 HardwareUnsubscribeCmd, 23 22 HardwareWriteCmd, 24 - }, 25 23 }, 26 - util::async_manager, 27 24 }; 28 25 29 26 use async_trait::async_trait;
+3 -5
buttplug/tests/util/test_device_manager/test_device_comm_manager.rs crates/buttplug_tests/tests/util/test_device_manager/test_device_comm_manager.rs
··· 14 14 }, 15 15 TestDevice, 16 16 }; 17 - use buttplug::{ 18 - core::ButtplugResultFuture, 19 - server::device::configuration::{BluetoothLESpecifier, ProtocolCommunicationSpecifier}, 20 - server::device::hardware::communication::{ 17 + use buttplug_core::ButtplugResultFuture; 18 + use buttplug_server_device_config::{BluetoothLESpecifier, ProtocolCommunicationSpecifier}; 19 + use buttplug_server::device::hardware::communication::{ 21 20 HardwareCommunicationManager, 22 21 HardwareCommunicationManagerBuilder, 23 22 HardwareCommunicationManagerEvent, 24 - }, 25 23 }; 26 24 use futures::future::{self, FutureExt}; 27 25 use log::*;
+5 -6
buttplug/tests/util/test_server.rs crates/buttplug_tests/tests/util/test_server.rs
··· 5 5 // Licensed under the BSD 3-Clause license. See LICENSE file in the project root 6 6 // for full license information. 7 7 8 - use buttplug::{ 9 - core::{ 8 + use buttplug_core::{ 10 9 connector::ButtplugConnector, 11 10 errors::ButtplugError, 12 11 message::{ButtplugMessage, ButtplugMessageValidator, ErrorV0}, 13 - }, 14 - server::{ 12 + util::async_manager, 13 + 14 + }; 15 + use buttplug_server::{ 15 16 message::{ButtplugClientMessageVariant, ButtplugServerMessageVariant}, 16 17 ButtplugServer, 17 18 ButtplugServerBuilder, 18 - }, 19 - util::async_manager, 20 19 }; 21 20 use futures::{future::Future, pin_mut, select, FutureExt, StreamExt}; 22 21 use log::*;
+35
crates/buttplug_tests/Cargo.toml
··· 1 + [package] 2 + name = "buttplug_tests" 3 + version = "10.0.0" 4 + authors = ["Nonpolynomial Labs, LLC <kyle@nonpolynomial.com>"] 5 + description = "Buttplug Intimate Hardware Control Library - Core Library" 6 + license = "BSD-3-Clause" 7 + homepage = "http://buttplug.io" 8 + repository = "https://github.com/buttplugio/buttplug.git" 9 + readme = "./README.md" 10 + keywords = ["usb", "serial", "hardware", "bluetooth", "teledildonics"] 11 + edition = "2021" 12 + 13 + [dependencies] 14 + buttplug_derive = "0.8.1" 15 + buttplug_core = { path = "../buttplug_core" } 16 + buttplug_client = { path = "../buttplug_client" } 17 + buttplug_client_in_process = { path = "../buttplug_client_in_process", default-features = false} 18 + buttplug_server = { path = "../buttplug_server" } 19 + buttplug_server_device_config = { path = "../buttplug_server_device_config" } 20 + log = "0.4.27" 21 + tokio = { version = "1.44.2", features = ["macros"] } 22 + uuid = "1.16.0" 23 + futures = "0.3.31" 24 + tracing = "0.1.41" 25 + tracing-subscriber = "0.3.19" 26 + tracing-futures = "0.2.5" 27 + tokio-test = "0.4.4" 28 + serde = "1.0.219" 29 + async-trait = "0.1.88" 30 + dashmap = "6.1.0" 31 + thiserror = "2.0.12" 32 + getset = "0.1.5" 33 + jsonschema = { version = "0.30.0", default-features = false } 34 + test-case = "3.3.1" 35 + serde_yaml = "0.9.34"
+20
crates/buttplug_tests/tests/util/device_test/client/client_v3/connector/mod.rs
··· 1 + mod in_process_connector; 2 + pub use in_process_connector::{ 3 + ButtplugInProcessClientConnectorBuilder, 4 + }; 5 + 6 + 7 + use buttplug_client::serializer::ButtplugClientJSONSerializer; 8 + use buttplug_core::connector::ButtplugRemoteConnector; 9 + use buttplug_server::message::{ButtplugClientMessageV3, ButtplugServerMessageV3}; 10 + 11 + 12 + pub type ButtplugRemoteClientConnector< 13 + TransportType, 14 + SerializerType = ButtplugClientJSONSerializer, 15 + > = ButtplugRemoteConnector< 16 + TransportType, 17 + SerializerType, 18 + ButtplugClientMessageV3, 19 + ButtplugServerMessageV3, 20 + >;