Buttplug sex toy control library
at dev 52 kB view raw
1mod util; 2//use buttplug::util::async_manager; 3use test_case::test_case; 4use util::device_test::DeviceTestCase; 5 6async fn load_test_case(test_file: &str) -> DeviceTestCase { 7 // Load the file list from the test cases directory 8 let test_file_path = 9 std::path::Path::new(&std::env::var("CARGO_MANIFEST_DIR").expect("Should have manifest path")) 10 .join("tests") 11 .join("util") 12 .join("device_test") 13 .join("device_test_case") 14 .join(test_file); 15 // Given the test case object, run the test across all client versions. 16 let yaml_test_case = std::fs::read_to_string(&test_file_path) 17 .unwrap_or_else(|_| panic!("Cannot read file {:?}", test_file_path)); 18 serde_yaml::from_str(&yaml_test_case).expect("Could not parse yaml for file.") 19} 20 21//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 22#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 23#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 24#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 25#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 26#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 27#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 28#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 29#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 30#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 31#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 32#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 33#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 34#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 35#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 36#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 37//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 38#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 39#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 40#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 41#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 42#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 43#[test_case("test_hismith_sinloli_aston.yaml" ; "Hismith Mini Protocol - Sinloli Aston")] 44#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 45#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 46#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 47#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 48#[test_case("test_itoys_twinklingstars.yaml" ; "iToys Protocol - Twinkling Stars")] 49#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 50#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 51#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 52#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 53#[test_case("test_kiiroo_powershot.yaml" ; "Kiiroo PowerShot Protocol")] 54#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 55#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 56#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 57#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 58#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 59#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 60#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 61#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 62#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 63#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 64#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 65#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 66#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 67#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 68//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 69#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 70//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 71//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 72#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 73#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 74#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 75#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 76#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 77////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 78#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 79#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 80#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 81#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 82#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 83#[test_case("test_sexverse_cali.yaml" ; "Sexverse Protocol v1 - Cali")] 84#[test_case("test_sexverse_nolan.yaml" ; "Sexverse Protocol v2 - Nolan")] 85#[test_case("test_sexverse_olis.yaml" ; "Sexverse Protocol v1 - Olis")] 86#[test_case("test_sexverse_rex.yaml" ; "Sexverse Protocol v1 - Rex")] 87#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 88#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 89#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 90#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 91#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 92#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 93#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 94#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 95#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 96#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 97#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 98#[test_case("test_satisfyer_triple_vibrator.yaml" ; "Satisfyer Protocol - Triple Vibrator")] 99#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 100#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 101#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 102#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 103#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 104#[test_case("test_sexverse_heart_protocol.yaml" ; "Sexverse Heart Protocol")] 105#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 106#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 107#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 108#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 109#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 110#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 111#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 112#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 113#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 114#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 115#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 116#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 117#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 118#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 119#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 120#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 121#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 122#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 123#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 124#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 125#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 126#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 127#[test_case("test_vvd_vkini_protocol.yaml" ; "VVD Vikini (metaXsire v4) Protocol")] 128#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 129#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 130#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 131#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 132#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 133#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 134#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 135#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 136#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 137#[tokio::test] 138async fn test_device_protocols_embedded_v4(test_file: &str) { 139 //tracing_subscriber::fmt::init(); 140 util::device_test::client::client_v4::run_embedded_test_case(&load_test_case(test_file).await) 141 .await; 142} 143 144//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 145#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 146#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 147#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 148#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 149#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 150#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 151#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 152#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 153#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 154#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 155#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 156#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 157#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 158#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 159#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 160//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 161#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 162#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 163#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 164#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 165#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 166#[test_case("test_hismith_sinloli_aston.yaml" ; "Hismith Mini Protocol - Sinloli Aston")] 167#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 168#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 169#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 170#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 171#[test_case("test_itoys_twinklingstars.yaml" ; "iToys Protocol - Twinkling Stars")] 172#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 173#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 174#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 175#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 176#[test_case("test_kiiroo_powershot.yaml" ; "Kiiroo PowerShot Protocol")] 177#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 178#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 179#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 180#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 181#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 182#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 183#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 184#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 185#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 186#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 187#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 188#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 189#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 190#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 191//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 192#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 193//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 194//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 195#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 196#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 197#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 198#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 199#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 200////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 201#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 202#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 203#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 204#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 205#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 206#[test_case("test_sexverse_cali.yaml" ; "metaXsire Protocol - Cali")] 207#[test_case("test_sexverse_nolan.yaml" ; "metaXsire Protocol v2 - Nolan")] 208#[test_case("test_sexverse_olis.yaml" ; "metaXsire Protocol - Olis")] 209#[test_case("test_sexverse_rex.yaml" ; "metaXsire Protocol - Rex")] 210#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 211#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 212#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 213#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 214#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 215#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 216#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 217#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 218#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 219#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 220#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 221#[test_case("test_satisfyer_triple_vibrator.yaml" ; "Satisfyer Protocol - Triple Vibrator")] 222#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 223#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 224#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 225#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 226#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 227#[test_case("test_sexverse_heart_protocol.yaml" ; "Sexverse Heart Protocol")] 228#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 229#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 230#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 231#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 232#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 233#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 234#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 235#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 236#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 237#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 238#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 239#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 240#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 241#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 242#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 243#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 244#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 245#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 246#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 247#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 248#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 249#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 250#[test_case("test_vvd_vkini_protocol.yaml" ; "VVD Vikini (metaXsire v4) Protocol")] 251#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 252#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 253#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 254#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 255#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 256#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 257#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 258#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 259#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 260#[tokio::test] 261async fn test_device_protocols_json_v4(test_file: &str) { 262 //tracing_subscriber::fmt::init(); 263 util::device_test::client::client_v4::run_json_test_case(&load_test_case(test_file).await).await; 264} 265 266//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 267#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 268#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 269#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 270#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 271#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 272#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 273#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 274#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 275#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 276#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 277#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 278#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 279#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 280#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 281#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 282//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 283#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 284#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 285#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 286#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 287#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 288#[test_case("test_hismith_sinloli_aston.yaml" ; "Hismith Mini Protocol - Sinloli Aston")] 289#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 290#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 291#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 292#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 293#[test_case("test_itoys_twinklingstars.yaml" ; "iToys Protocol - Twinkling Stars")] 294#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 295#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 296#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 297#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 298#[test_case("test_kiiroo_powershot.yaml" ; "Kiiroo PowerShot Protocol")] 299#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 300#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 301#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 302#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 303#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 304#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 305#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 306#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 307#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 308#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 309#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 310#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 311#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 312#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 313//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 314#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 315//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 316//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 317#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 318#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 319#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 320#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 321#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 322////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 323#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 324#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 325#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 326#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 327#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 328#[test_case("test_sexverse_cali.yaml" ; "metaXsire Protocol - Cali")] 329#[test_case("test_sexverse_nolan.yaml" ; "metaXsire Protocol v2 - Nolan")] 330#[test_case("test_sexverse_olis.yaml" ; "metaXsire Protocol - Olis")] 331#[test_case("test_sexverse_rex.yaml" ; "metaXsire Protocol - Rex")] 332#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 333#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 334#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 335#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 336#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 337#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 338#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 339#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 340#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 341#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 342#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 343#[test_case("test_satisfyer_triple_vibrator.yaml" ; "Satisfyer Protocol - Triple Vibrator")] 344#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 345#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 346#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 347#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 348#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 349#[test_case("test_sexverse_heart_protocol.yaml" ; "Sexverse Heart Protocol")] 350#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 351#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 352#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 353#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 354#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 355#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 356#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 357#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 358#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 359#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 360#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 361#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 362#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 363#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 364#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 365#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 366#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 367#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 368#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 369#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 370#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 371#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 372#[test_case("test_vvd_vkini_protocol.yaml" ; "VVD Vikini (metaXsire v4) Protocol")] 373#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 374#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 375#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 376#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 377#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 378#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 379#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 380#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 381#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 382#[tokio::test] 383async fn test_device_protocols_embedded_v3(test_file: &str) { 384 //tracing_subscriber::fmt::init(); 385 util::device_test::client::client_v3::run_embedded_test_case(&load_test_case(test_file).await) 386 .await; 387} 388 389//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 390#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 391#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 392#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 393#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 394#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 395#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 396#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 397#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 398#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 399#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 400#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 401#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 402#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 403#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 404#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 405//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 406#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 407#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 408#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 409#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 410#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 411#[test_case("test_hismith_sinloli_aston.yaml" ; "Hismith Mini Protocol - Sinloli Aston")] 412#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 413#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 414#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 415#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 416#[test_case("test_itoys_twinklingstars.yaml" ; "iToys Protocol - Twinkling Stars")] 417#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 418#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 419#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 420#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 421#[test_case("test_kiiroo_powershot.yaml" ; "Kiiroo PowerShot Protocol")] 422#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 423#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 424#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 425#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 426#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 427#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 428#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 429#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 430#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 431#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 432#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 433#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 434#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 435#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 436//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 437#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 438//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 439//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 440#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 441#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 442#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 443#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 444#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 445////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 446#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 447#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 448#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 449#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 450#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 451#[test_case("test_sexverse_cali.yaml" ; "metaXsire Protocol - Cali")] 452#[test_case("test_sexverse_nolan.yaml" ; "metaXsire Protocol v2 - Nolan")] 453#[test_case("test_sexverse_olis.yaml" ; "metaXsire Protocol - Olis")] 454#[test_case("test_sexverse_rex.yaml" ; "metaXsire Protocol - Rex")] 455#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 456#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 457#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 458#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 459#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 460#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 461#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 462#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 463#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 464#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 465#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 466#[test_case("test_satisfyer_triple_vibrator.yaml" ; "Satisfyer Protocol - Triple Vibrator")] 467#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 468#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 469#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 470#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 471#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 472#[test_case("test_sexverse_heart_protocol.yaml" ; "Sexverse Heart Protocol")] 473#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 474#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 475#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 476#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 477#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 478#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 479#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 480#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 481#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 482#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 483#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 484#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 485#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 486#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 487#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 488#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 489#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 490#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 491#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 492#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 493#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 494#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 495#[test_case("test_vvd_vkini_protocol.yaml" ; "VVD Vikini (metaXsire v4) Protocol")] 496#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 497#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 498#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 499#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 500#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 501#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 502#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 503#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 504#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 505#[tokio::test] 506async fn test_device_protocols_json_v3(test_file: &str) { 507 //tracing_subscriber::fmt::init(); 508 util::device_test::client::client_v3::run_json_test_case(&load_test_case(test_file).await).await; 509} 510 511/* 512//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 513#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 514#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 515#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 516#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 517#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 518#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 519#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 520#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 521#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 522#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 523#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 524#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 525#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 526#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 527#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 528//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 529#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 530#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 531#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 532#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 533#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 534#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 535#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 536#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 537#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 538//#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 539//#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 540//#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 541//#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 542//#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 543//#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 544//#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 545//#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 546#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 547#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 548#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 549//#[test_case("test_longlosttouch_protocol.yaml" ; "LongLostTouch Protocol")] 550#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 551//#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 552//#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 553#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 554#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 555//#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 556#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 557//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 558#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 559//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 560//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 561//#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 562//#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 563#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 564#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 565#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 566////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 567#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 568#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 569//#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 570//#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 571#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 572//#[test_case("test_sexverse_cali.yaml" ; "metaXsire Protocol - Cali")] 573//#[test_case("test_sexverse_nolan.yaml" ; "metaXsire Protocol v2 - Nolan")] 574//#[test_case("test_sexverse_olis.yaml" ; "metaXsire Protocol - Olis")] 575//#[test_case("test_sexverse_rex.yaml" ; "metaXsire Protocol - Rex")] 576#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 577#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 578//#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 579#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 580//#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 581#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 582#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 583#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 584#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 585#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 586#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 587//#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 588//#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 589//#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 590#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 591#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 592//#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 593#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 594#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 595//#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 596//#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 597//#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 598//#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 599//#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 600//#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 601//#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 602//#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 603//#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 604//#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 605#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 606#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 607#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 608//#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 609//#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 610//#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 611//#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 612//#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 613//#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 614#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 615#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 616#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 617#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 618#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 619#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 620#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 621#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 622#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 623#[tokio::test] 624async fn test_device_protocols_embedded_v2(test_file: &str) { 625 tracing_subscriber::fmt::init(); 626 util::device_test::client::client_v2::run_embedded_test_case(&load_test_case(test_file).await) 627 .await; 628} 629 630//#[test_case("test_cowgirl_cone_protocol.yaml" ; "The Cowgirl Cone Protocol")] 631#[test_case("test_activejoy_protocol.yaml" ; "ActiveJoy Protocol")] 632#[test_case("test_adrienlastic_protocol.yaml" ; "Adrien Lastic Protocol")] 633#[test_case("test_amorelie_joy_protocol.yaml" ; "Amorelie Joy Protocol")] 634#[test_case("test_aneros_protocol.yaml" ; "Aneros Protocol")] 635#[test_case("test_ankni_protocol_no_handshake.yaml" ; "Ankni Protocol - No Handshake")] 636#[test_case("test_ankni_protocol.yaml" ; "Ankni Protocol")] 637#[test_case("test_bananasome_protocol.yaml" ; "Bananasome Protocol")] 638#[test_case("test_cachito_protocol.yaml" ; "Cachito Protocol")] 639#[test_case("test_cowgirl_protocol.yaml" ; "The Cowgirl Protocol")] 640#[test_case("test_cupido_protocol.yaml" ; "Cupido Protocol")] 641#[test_case("test_deepsire.yaml" ; "DeepSire Protocol")] 642#[test_case("test_feelingso.yaml" ; "FeelingSo Protocol")] 643#[test_case("test_fleshy_thrust_protocol.yaml" ; "Fleshy Thrust Sync Protocol")] 644#[test_case("test_foreo_protocol.yaml" ; "Foreo Protocol")] 645#[test_case("test_fox_protocol.yaml" ; "Fox Protocol")] 646//#[test_case("test_fredorch_protocol.yaml" ; "Fredorch Protocol")] 647#[test_case("test_galaku_nebula.yaml" ; "Galaku Pump Protocol - Nebula")] 648#[test_case("test_galaku.yaml" ; "Galaku Protocol")] 649#[test_case("test_hgod_protocol.yaml" ; "Hgod Protocol")] 650#[test_case("test_hismith_auxfun_box.yaml" ; "Hismith Mini Protocol - Auxfun Box")] 651#[test_case("test_hismith_sinloli.yaml" ; "Hismith Mini Protocol - Sinloli")] 652#[test_case("test_hismith_thrusting_cup.yaml" ; "Hismith Protocol - Thrusting Cup")] 653#[test_case("test_hismith_v4.yaml" ; "Hismith Mini Protocol - Hismith v4")] 654#[test_case("test_hismith_wildolo.yaml" ; "Hismith Protocol - Wildolo")] 655#[test_case("test_itoys_protocol.yaml" ; "iToys Protocol")] 656//#[test_case("test_joyhub_moonhorn.yaml" ; "JoyHub Protocol - Moonhorn")] 657//#[test_case("test_joyhub_petalwish_compat.yaml" ; "JoyHub Protocol - Petalwish Compat")] 658//#[test_case("test_joyhub_petalwish.yaml" ; "JoyHub Protocol - Petalwish")] 659//#[test_case("test_joyhub_roselin.yaml" ; "JoyHub Protocol - RoseLin")] 660//#[test_case("test_kiiroo_prowand.yaml" ; "Kiiroo ProWand Protocol")] 661//#[test_case("test_kiiroo_spot.yaml" ; "Kiiroo Spot Protocol")] 662//#[test_case("test_lelo_f1sv1.yaml" ; "Lelo F1s V1 Protocol")] 663//#[test_case("test_lelo_f1sv2.yaml" ; "Lelo F1s V2 Protocol")] 664#[test_case("test_lelo_idawave.yaml" ; "Lelo Harmony Protocol - Ida Wave")] 665#[test_case("test_lelo_tianiharmony.yaml" ; "Lelo Harmony Protocol - Tiani Harmony")] 666#[test_case("test_leten_protocol.yaml" ; "Leten Protocol")] 667//#[test_case("test_longlosttouch_protocol.yaml" ; "LongLostTouch Protocol")] 668#[test_case("test_loob_protocol.yaml" ; "Joyroid Loob Protocol")] 669//#[test_case("test_lovehoney_desire_egg.yaml" ; "Lovehoney Desire Protocol - Love Egg")] 670//#[test_case("test_lovehoney_desire_prostate.yaml" ; "Lovehoney Desire Protocol - Prostate Vibe")] 671#[test_case("test_lovense_battery_non_default.yaml" ; "Lovense Protocol - Lovense Battery (Non-Default Devices)")] 672#[test_case("test_lovense_battery.yaml" ; "Lovense Protocol - Lovense Battery (Default Devices)")] 673//#[test_case("test_lovense_edge.yaml" ; "Lovense Protocol - Edge")] 674#[test_case("test_lovense_flexer_fw2.yaml" ; "Lovense Protocol - Flexer FW2")] 675//#[test_case("test_lovense_flexer_fw3.yaml" ; "Lovense Protocol - Flexer FW3")] 676#[test_case("test_lovense_max.yaml" ; "Lovense Protocol - Lovense Max (Vibrate/Constrict)")] 677//#[test_case("test_lovense_nora.yaml" ; "Lovense Protocol - Lovense Nora (Vibrate/Rotate)")] 678//#[test_case("test_lovense_osci3.yaml" ; "Lovense Protocol - Osci3")] 679//#[test_case("test_lovense_ridge_user_config.yaml" ; "Lovense Protocol - Lovense Ridge (User Config)")] 680//#[test_case("test_lovense_ridge.yaml" ; "Lovense Protocol - Lovense Ridge (Oscillate)")] 681#[test_case("test_lovense_single_vibrator.yaml" ; "Lovense Protocol - Single Vibrator Device")] 682#[test_case("test_luvmazer_protocol.yaml" ; "Luvmazer Protocol")] 683#[test_case("test_magic_motion_1_magic_cell.yaml" ; "MagicMotion Protocol 1 - Magic Cell")] 684////#[test_case("test_magic_motion_2_eidolon.yaml" ; "MagicMotion Protocol 2 - Eidolon")] 685#[test_case("test_magic_motion_2_equinox.yaml" ; "MagicMotion Protocol 2 - Equinox")] 686#[test_case("test_magic_motion_3_krush.yaml" ; "MagicMotion Protocol 3 - Krush")] 687//#[test_case("test_magic_motion_4_bobi.yaml" ; "MagicMotion Protocol 4 - Bobi")] 688//#[test_case("test_magic_motion_4_nyx.yaml" ; "MagicMotion Protocol 4 - Nyx")] 689#[test_case("test_meese_protocol.yaml" ; "Meese Protocol")] 690//#[test_case("test_sexverse_cali.yaml" ; "metaXsire Protocol - Cali")] 691//#[test_case("test_sexverse_nolan.yaml" ; "metaXsire Protocol v2 - Nolan")] 692//#[test_case("test_sexverse_olis.yaml" ; "metaXsire Protocol - Olis")] 693//#[test_case("test_sexverse_rex.yaml" ; "metaXsire Protocol - Rex")] 694#[test_case("test_mizzzee_protocol.yaml" ; "Mizz Zee Protocol")] 695#[test_case("test_mizzzee_v2_protocol.yaml" ; "Mizz Zee v2 Protocol")] 696//#[test_case("test_mizzzee_v3_protocol.yaml" ; "Mizz Zee v3 Protocol")] 697#[test_case("test_motorbunny_protocol.yaml" ; "Motorbunny Protocol")] 698//#[test_case("test_mysteryvibe.yaml" ; "Mysteryvibe Protocol")] 699#[test_case("test_nexus_revo.yaml" ; "Nexus Revo Protocol")] 700#[test_case("test_nobra_protocol.yaml" ; "Nobra Protocol")] 701#[test_case("test_omobo_protocol.yaml" ; "Omobo Protocol")] 702#[test_case("test_pink_punch_protocol.yaml" ; "Pink Punch Protocol")] 703#[test_case("test_sakuraneko_koikoi.yaml" ; "Sakuraneko Protocol - Koikoi")] 704#[test_case("test_sakuraneko_protocol.yaml" ; "Sakuraneko Protocol")] 705//#[test_case("test_satisfyer_dual_vibrator.yaml" ; "Satisfyer Protocol - Dual Vibrator")] 706//#[test_case("test_satisfyer_single_vibrator.yaml" ; "Satisfyer Protocol - Single Vibrator")] 707//#[test_case("test_sensee_capsule.yaml" ; "Sensee Capsule Protocol")] 708#[test_case("test_sensee_protocol.yaml" ; "Sensee Diandou Protocol - Rabbit")] 709#[test_case("test_serveu_protocol.yaml" ; "ServeU")] 710//#[test_case("test_sexverse_lg389_protocol.yaml" ; "Sexverse LG389 Protocol")] 711#[test_case("test_svakom_alex_v2.yaml" ; "Svakom Alex Neo 2")] 712#[test_case("test_svakom_alex.yaml" ; "Svakom Alex Neo")] 713//#[test_case("test_svakom_barnard.yaml" ; "Svakom (Fantasy Cup) Barnard")] 714//#[test_case("test_svakom_cocopro.yaml" ; "Svakom Coco Pro")] 715//#[test_case("test_svakom_ella.yaml" ; "Svakom V1 Protocol - Ella")] 716//#[test_case("test_svakom_iker.yaml" ; "Svakom Iker")] 717//#[test_case("test_svakom_mora_neo.yaml" ; "Svakom Mora Neo")] 718//#[test_case("test_svakom_pulse.yaml" ; "Svakom Pulse Protocol - Pulse Lite Neo")] 719//#[test_case("test_svakom_sam2.yaml" ; "Svakom Sam Neo 2 Pro")] 720//#[test_case("test_svakom_theodore.yaml" ; "Svakom V3 Protocol - Theodore")] 721//#[test_case("test_svakom_vivianna.yaml" ; "Svakom V2 Protocol - Vivianna")] 722//#[test_case("test_synchro_protocol.yaml" ; "Synchro Protocol")] 723#[test_case("test_tcode_linear_and_vibrate.yaml" ; "TCode (Linear + Vibrate)")] 724#[test_case("test_tryfun_blackhole_protocol.yaml" ; "TryFun Protocol - Black Hole Plus")] 725#[test_case("test_tryfun_meta2_protocol.yaml" ; "TryFun Protocol - Meta 2")] 726//#[test_case("test_tryfun_protocol.yaml" ; "TryFun Protocol")] 727//#[test_case("test_tryfun_surge.yaml" ; "TryFun Protocol - Surge Pro")] 728//#[test_case("test_user_config_display_name.yaml" ; "User Config Display Name")] 729//#[test_case("test_vorze_cyclone.yaml" ; "Vorze Protocol - Cyclone")] 730//#[test_case("test_vorze_ufo_tw.yaml" ; "Vorze Protocol - UFO TW")] 731//#[test_case("test_vorze_ufo.yaml" ; "Vorze Protocol - UFO")] 732#[test_case("test_wetoy_protocol.yaml" ; "WeToy Protocol")] 733#[test_case("test_wevibe_4plus.yaml" ; "WeVibe Protocol (Legacy) - 4 Plus")] 734#[test_case("test_wevibe_chorus.yaml" ; "WeVibe Protocol (Chorus) - Chorus")] 735#[test_case("test_wevibe_moxie.yaml" ; "WeVibe Protocol (8bit) - Moxie")] 736#[test_case("test_wevibe_pivot.yaml" ; "WeVibe Protocol (Legacy) - Pivot")] 737#[test_case("test_wevibe_vector.yaml" ; "WeVibe Protocol (8bit) - Vector")] 738#[test_case("test_xibao_protocol.yaml" ; "Xibao Protocol")] 739#[test_case("test_xiuxiuda_protocol.yaml" ; "Xiuxiuda Protocol")] 740#[test_case("test_xuanhuan_protocol.yaml" ; "Xuanhuan Protocol")] 741#[tokio::test] 742async fn test_device_protocols_json_v2(test_file: &str) { 743 util::device_test::client::client_v2::run_json_test_case(&load_test_case(test_file).await).await; 744} 745*/