From 3be5294995f9119ee16833ecbff0fd55fc37b3d3 Mon Sep 17 00:00:00 2001 From: zhang xiaolei Date: Mon, 9 Jun 2014 19:33:22 +0800 Subject: [PATCH] tizen ivi connectivity suite initial release Change-Id: I46a5b0ca30784b404aa924a8092a86c51d05f948 Signed-off-by: zhang xiaolei --- LICENSE | 340 +++ ivi/tts-bluez-tests/README | 65 + ivi/tts-bluez-tests/data/client/README | 24 + ivi/tts-bluez-tests/data/client/auto_accept_agent | 189 ++ ivi/tts-bluez-tests/data/client/bluetooth_env | 140 ++ ivi/tts-bluez-tests/data/server/.README.swp | Bin 0 -> 4096 bytes ivi/tts-bluez-tests/data/server/README | 23 + ivi/tts-bluez-tests/data/server/auto_accept_agent | 134 ++ .../data/server/bt_pan_server_setup.sh | 36 + ivi/tts-bluez-tests/data/server/gather_info.sh | 1 + .../data/server/server/root_file_1.bmp | Bin 0 -> 385254 bytes .../data/server/server/root_file_2.bmp | Bin 0 -> 385254 bytes .../data/server/server/root_file_3.txt | 1 + ivi/tts-bluez-tests/data/server/server/server_info | 18 + .../server/server/subdir1/subdir1_test_file1.txt | 2328 ++++++++++++++++++++ .../server/server/subdir1/subdir1_test_file2.txt | 1530 +++++++++++++ .../server/server/subdir2/subdir2_test_file1.txt | 2220 +++++++++++++++++++ .../server/server/subdir2/subdir2_test_file2.txt | 1 + .../server/server/subdir3/subdir3_test_file1.txt | 0 .../server/server/subdir3/subdir3_test_file2.txt | 48 + ivi/tts-bluez-tests/data/server/server_cleanup.sh | 34 + ivi/tts-bluez-tests/data/server/server_startup.sh | 51 + ivi/tts-bluez-tests/src/README | 77 + ivi/tts-bluez-tests/src/bt_adapter_get_address.sh | 43 + .../src/bt_adapter_get_discoverabletimeout.sh | 44 + .../src/bt_adapter_get_discovering.sh | 46 + .../src/bt_adapter_get_pairabletimeout.sh | 44 + ivi/tts-bluez-tests/src/bt_adapter_get_power.sh | 44 + ivi/tts-bluez-tests/src/bt_adapter_scan.sh | 47 + .../src/bt_adapter_set_discoverable_off.sh | 55 + .../src/bt_adapter_set_discoverable_on.sh | 53 + .../src/bt_adapter_set_discoverabletimeout.sh | 48 + .../src/bt_adapter_set_pairable_off.sh | 54 + .../src/bt_adapter_set_pairable_on.sh | 52 + .../src/bt_adapter_set_pairabletimeout.sh | 48 + ivi/tts-bluez-tests/src/bt_adapter_set_power.sh | 48 + .../bt_adapter_set_stress_discoverable_50times.sh | 58 + .../src/bt_adapter_set_stress_pairable_50times.sh | 58 + .../src/bt_adapter_set_stress_power_50times.sh | 61 + ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh | 57 + ivi/tts-bluez-tests/src/bt_ftp_get_check.sh | 63 + .../src/bt_ftp_neg_get_exist_file.sh | 51 + .../src/bt_ftp_neg_put_wrong_folder.sh | 51 + .../src/bt_ftp_neg_remove_noexist_file.sh | 80 + ivi/tts-bluez-tests/src/bt_ftp_put_check.sh | 63 + ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh | 90 + .../src/bt_ftp_stress_get_bigsizefile.sh | 73 + .../src/bt_ftp_stress_put_bigsizefile.sh | 71 + ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh | 48 + .../src/bt_gap_remove_pairing_computer.sh | 59 + ivi/tts-bluez-tests/src/bt_gap_type_check.sh | 63 + ivi/tts-bluez-tests/src/bt_hci_clock_local.sh | 45 + ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh | 47 + ivi/tts-bluez-tests/src/bt_hci_dev.sh | 43 + ivi/tts-bluez-tests/src/bt_hci_epinq.sh | 45 + ivi/tts-bluez-tests/src/bt_hci_info.sh | 45 + ivi/tts-bluez-tests/src/bt_hci_inq.sh | 45 + ivi/tts-bluez-tests/src/bt_hci_spinq.sh | 46 + ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh | 53 + ivi/tts-bluez-tests/src/bt_opp_send_files.sh | 73 + ivi/tts-bluez-tests/src/bt_panu_setup_check.sh | 68 + ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh | 48 + ivi/tts-bluez-tests/src/bt_sdp_add.sh | 46 + ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh | 51 + ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh | 51 + ivi/tts-bluez-tests/src/bt_sdp_del.sh | 47 + ivi/tts-bluez-tests/src/bt_sdp_get.sh | 46 + ivi/tts-bluez-tests/src/bt_sdp_search_local.sh | 46 + ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh | 45 + .../src/bt_system_daemon_bluetoothd.sh | 37 + ivi/tts-bluez-tests/src/bt_system_package_bluez.sh | 38 + ivi/tts-bluez-tests/src/bt_system_package_obexd.sh | 38 + ivi/tts-bluez-tests/src/hci_disable_sspmode.sh | 54 + ivi/tts-bluez-tests/src/hci_enable_sspmode.sh | 54 + ivi/tts-bluez-tests/src/hci_set_auth.sh | 53 + ivi/tts-bluez-tests/src/hci_set_encrypt.sh | 52 + ivi/tts-bluez-tests/src/hci_set_iscan.sh | 54 + ivi/tts-bluez-tests/src/hci_set_noauth.sh | 52 + ivi/tts-bluez-tests/src/hci_set_noencrypt.sh | 51 + ivi/tts-bluez-tests/src/hci_set_noscan.sh | 53 + ivi/tts-bluez-tests/src/hci_set_piscan.sh | 56 + ivi/tts-bluez-tests/src/hci_set_pscan.sh | 56 + ivi/tts-bluez-tests/src/hci_tool_scan.sh | 53 + ivi/tts-bluez-tests/tests.xml | 377 ++++ ivi/tts-connman-tests/ChangeLog | 27 + ivi/tts-connman-tests/README | 84 + ivi/tts-connman-tests/bisect.sh | 33 + ivi/tts-connman-tests/coverage.ods | Bin 0 -> 22578 bytes ivi/tts-connman-tests/data/apset.tgz | Bin 0 -> 5098 bytes ivi/tts-connman-tests/network.jpg | Bin 0 -> 39926 bytes ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py | 34 + ivi/tts-connman-tests/src/3G/CM_3G_Connect.py | 33 + .../src/3G/CM_3G_DeviceIsExist.py | 33 + ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py | 41 + ivi/tts-connman-tests/src/3G/CM_3G_Download.py | 34 + ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py | 37 + ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py | 35 + ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py | 47 + ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py | 46 + ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py | 32 + .../src/3G/CM_3G_IsReEnableWorks.py | 32 + ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py | 34 + ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py | 33 + ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py | 42 + ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py | 40 + ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py | 34 + ivi/tts-connman-tests/src/3G/CM_3G_Upload.py | 34 + ivi/tts-connman-tests/src/3G/cleanup | 29 + ivi/tts-connman-tests/src/3G/startup | 30 + ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py | 45 + .../src/BM/CM_BM_3G_Disconnect.py | 49 + ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py | 49 + ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py | 49 + ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py | 39 + .../src/BM/CM_BM_BT_Disconnect.py | 41 + ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py | 42 + ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py | 42 + ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py | 37 + .../src/BM/CM_BM_PSK_Disconnect.py | 39 + ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py | 37 + .../src/BM/CM_BM_WEP_Disconnect.py | 39 + ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py | 38 + ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py | 34 + ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py | 38 + ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py | 34 + ivi/tts-connman-tests/src/BT/CM_BT_Connect.py | 33 + .../src/BT/CM_BT_DeviceIsExist.py | 33 + ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py | 41 + ivi/tts-connman-tests/src/BT/CM_BT_Download.py | 34 + ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py | 34 + ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py | 35 + ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py | 47 + ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py | 46 + ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py | 32 + .../src/BT/CM_BT_IsReEnableWorks.py | 32 + ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py | 34 + ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py | 33 + ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py | 42 + ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py | 40 + ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py | 34 + ivi/tts-connman-tests/src/BT/CM_BT_Upload.py | 34 + ivi/tts-connman-tests/src/BT/bluez_simple_agent.py | 108 + ivi/tts-connman-tests/src/BT/cleanup | 30 + ivi/tts-connman-tests/src/BT/startup | 30 + ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp | 108 + .../src/Ethernet/CM_Eth_BigBroadcastPing.py | 33 + .../src/Ethernet/CM_Eth_Connect.py | 34 + .../src/Ethernet/CM_Eth_DeviceIsExist.py | 33 + .../src/Ethernet/CM_Eth_Disconnect.py | 45 + .../src/Ethernet/CM_Eth_Download.py | 33 + .../src/Ethernet/CM_Eth_HasDHCP.py | 33 + ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py | 33 + .../src/Ethernet/CM_Eth_IfconfigDown.py | 49 + .../src/Ethernet/CM_Eth_IfconfigUp.py | 44 + .../src/Ethernet/CM_Eth_IsPoweredOn.py | 32 + .../src/Ethernet/CM_Eth_IsReEnableWorks.py | 32 + .../src/Ethernet/CM_Eth_IsReady.py | 33 + .../src/Ethernet/CM_Eth_IsSCPWork.py | 32 + .../src/Ethernet/CM_Eth_PoweredOff.py | 42 + .../src/Ethernet/CM_Eth_PoweredOn.py | 41 + .../src/Ethernet/CM_Eth_SmallBroadcastPing.py | 33 + .../src/Ethernet/CM_Eth_Upload.py | 33 + ivi/tts-connman-tests/src/Ethernet/startup | 30 + .../src/Flight/CM_Flt_EthIsPoweredOff.py | 45 + .../src/Flight/CM_Flt_EthNoPing.py | 43 + .../src/Flight/CM_Flt_EthOnline.py | 41 + .../src/Flight/CM_Flt_EthPoweredOff.py | 40 + .../src/Flight/CM_Flt_EthPoweredOn.py | 35 + ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py | 39 + ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py | 38 + ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py | 41 + .../src/Flight/CM_Flt_WiFiGuest.py | 40 + .../src/Flight/CM_Flt_WiFiIsPoweredOff.py | 42 + .../src/Flight/CM_Flt_WiFiNoPing.py | 40 + .../src/Flight/CM_Flt_WiFiOnline.py | 38 + .../src/Flight/CM_Flt_WiFiPoweredOff.py | 42 + .../src/Flight/CM_Flt_WiFiPoweredOn.py | 37 + ivi/tts-connman-tests/src/Flight/cleanup | 31 + ivi/tts-connman-tests/src/Flight/startup | 30 + ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py | 30 + ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py | 30 + .../src/Launch/CM_Launch_OneConnmand.py | 41 + .../src/Launch/CM_Launch_State_Bluetooth.py | 31 + .../src/Launch/CM_Launch_State_Ethernet.py | 31 + .../src/Launch/CM_Launch_State_Offlinemode.py | 30 + .../src/Launch/CM_Launch_State_WiFi.py | 35 + .../src/Launch/CM_Launch_WpaSupplicant.py | 30 + ivi/tts-connman-tests/src/MBT/fmbt-20m.conf | 8 + ivi/tts-connman-tests/src/MBT/fmbt-basic.aal | 127 ++ ivi/tts-connman-tests/src/MBT/fmbt-basic.conf | 8 + ivi/tts-connman-tests/src/MBT/teststeps.py | 112 + .../src/Profile/CM_Prof_ActiveProfile.py | 67 + ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py | 53 + .../src/Profile/CM_Prof_AddExist.py | 62 + ivi/tts-connman-tests/src/Profile/CM_Prof_List.py | 47 + .../src/Profile/CM_Prof_Remove.py | 58 + .../src/Profile/CM_Prof_RemoveNoExist.py | 63 + .../src/Property/CM_PM_ActiveProfile.py | 39 + .../src/Property/CM_PM_AvailableTechnologies.py | 39 + .../src/Property/CM_PM_ConnectedTechnologies.py | 39 + .../src/Property/CM_PM_DefaultTechnology.py | 39 + .../src/Property/CM_PM_EnabledTechnologies.py | 39 + .../src/Property/CM_PM_OfflineMode.py | 39 + .../src/Property/CM_PM_Profiles.py | 41 + .../src/Property/CM_PM_SessionMode.py | 39 + ivi/tts-connman-tests/src/Property/CM_PM_State.py | 39 + .../src/Property/CM_PM_Technologies.py | 46 + ivi/tts-connman-tests/src/Property/CM_PS_APN.py | 41 + .../src/Property/CM_PS_AutoConnect.py | 39 + .../src/Property/CM_PS_Domains.py | 41 + ivi/tts-connman-tests/src/Property/CM_PS_Error.py | 42 + .../src/Property/CM_PS_Favorite.py | 39 + .../src/Property/CM_PS_Immutable.py | 39 + ivi/tts-connman-tests/src/Property/CM_PS_MCC.py | 41 + ivi/tts-connman-tests/src/Property/CM_PS_MNC.py | 41 + ivi/tts-connman-tests/src/Property/CM_PS_Mode.py | 39 + .../src/Property/CM_PS_Passphrase.py | 41 + .../src/Property/CM_PS_PassphraseRequired.py | 39 + .../src/Property/CM_PS_Security.py | 58 + .../src/Property/CM_PS_SetupRequired.py | 39 + ivi/tts-connman-tests/src/Property/CM_PS_State.py | 47 + .../src/Property/CM_PS_Strength.py | 46 + ivi/tts-connman-tests/src/Property/CM_PS_Type.py | 39 + .../src/Property/CM_PT_Connected.py | 39 + .../src/Property/CM_PT_Powered.py | 39 + .../src/Property/CM_PT_Tethering.py | 39 + ivi/tts-connman-tests/src/Property/CM_PT_Type.py | 39 + .../src/Property/CM_Prof_ActiveProfile.py | 67 + ivi/tts-connman-tests/src/Property/CM_Prof_Add.py | 53 + .../src/Property/CM_Prof_AddExist.py | 62 + ivi/tts-connman-tests/src/Property/CM_Prof_List.py | 47 + .../src/Property/CM_Prof_Remove.py | 58 + .../src/Property/CM_Prof_RemoveNoExist.py | 63 + ivi/tts-connman-tests/src/Property/startup | 30 + .../src/Signal/CM_SC_Connected.py | 39 + .../src/Signal/CM_SC_ConnectedTechnologies.py | 39 + .../src/Signal/CM_SC_DefaultTechnology.py | 39 + ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py | 56 + .../src/Signal/CM_SC_EnabledTechnologies.py | 39 + ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py | 57 + ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py | 62 + ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py | 39 + .../src/Signal/CM_SC_OfflineMode.py | 39 + ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py | 56 + ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py | 58 + .../src/Signal/CM_SC_ScanInterval.py | 53 + ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py | 49 + ivi/tts-connman-tests/src/Signal/CM_SC_Services.py | 39 + ivi/tts-connman-tests/src/Signal/CM_SC_State.py | 39 + .../src/Signal/CM_SC_Timeservers.py | 56 + .../src/Signal/CM_SM_ConnectedTechnologies.py | 56 + .../src/Signal/CM_SM_DefaultTechnology.py | 56 + .../src/Signal/CM_SM_EnabledTechnologies.py | 53 + ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py | 58 + ivi/tts-connman-tests/src/Signal/CM_SM_Services.py | 54 + ivi/tts-connman-tests/src/Signal/CM_SM_State.py | 52 + ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py | 51 + .../src/Signal/CM_SS_AutoConnect.py | 56 + ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py | 55 + ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py | 58 + ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py | 61 + .../src/Signal/CM_SS_Passphrase.py | 53 + ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py | 57 + .../src/Signal/CM_SS_Timeservers.py | 55 + ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py | 53 + ivi/tts-connman-tests/src/Signal/startup | 30 + .../src/State/CM_State_WIFI_AvialableAP.py | 21 + .../src/State/CM_State_WIFI_IsolateAP.py | 19 + ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py | 73 + .../src/Stress/CM_Stress_Flight.py | 78 + ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py | 74 + .../src/WiFi/CM_WA_AutoConnectFromSuspend.py | 45 + ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py | 74 + .../src/WiFi/CM_WA_DetectSecurityNone.py | 49 + .../src/WiFi/CM_WA_DetectSecurityRSN.py | 54 + .../src/WiFi/CM_WA_DetectSecurityWEP.py | 53 + .../src/WiFi/CM_WA_DetectSecurityWPA.py | 53 + .../src/WiFi/CM_WA_ForgotPassword.py | 100 + .../src/WiFi/CM_WA_RememberPasswd.py | 103 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py | 31 + .../src/WiFi/CM_WG_BigBroadcastPing.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py | 33 + .../src/WiFi/CM_WG_DeviceIsExist.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py | 39 + ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py | 33 + .../src/WiFi/CM_WG_IfconfigDown.py | 46 + ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py | 44 + .../src/WiFi/CM_WG_IsPoweredOn.py | 32 + .../src/WiFi/CM_WG_IsReEnableWorks.py | 32 + ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py | 32 + ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py | 42 + ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py | 40 + .../src/WiFi/CM_WG_SmallBroadcastPing.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py | 32 + .../src/WiFi/CM_WN_WEP128Short.py | 32 + .../src/WiFi/CM_WN_WEP128Wrong.py | 34 + .../src/WiFi/CM_WN_WEP128ascii.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py | 34 + .../src/WiFi/CM_WS_OpenBroadcastRSN.py | 31 + .../src/WiFi/CM_WS_OpenBroadcastTKIP.py | 31 + .../src/WiFi/CM_WS_OpenBroadcastWEP128.py | 32 + .../src/WiFi/CM_WS_OpenBroadcastWEP40.py | 31 + .../src/WiFi/CM_WS_OpenHiddenRSN.py | 31 + .../src/WiFi/CM_WS_OpenHiddenTKIP.py | 31 + .../src/WiFi/CM_WS_OpenHiddenWEP128.py | 32 + .../src/WiFi/CM_WS_OpenHiddenWEP40.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py | 31 + .../src/WiFi/CM_WS_RSN_Download.py | 43 + ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py | 41 + ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py | 31 + .../src/WiFi/CM_WS_SharedBroadcastWEP128.py | 32 + .../src/WiFi/CM_WS_SharedBroadcastWEP40.py | 31 + .../src/WiFi/CM_WS_SharedHiddenWEP128.py | 35 + .../src/WiFi/CM_WS_SharedHiddenWEP40.py | 31 + ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py | 32 + .../src/WiFi/CM_WS_WEP128ascii.py | 33 + ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py | 35 + ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py | 33 + .../src/WiFi/CM_WS_WEP_Download.py | 34 + ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py | 34 + ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py | 43 + ivi/tts-connman-tests/src/WiFi/cleanup | 30 + ivi/tts-connman-tests/src/WiFi/simple-agent | 357 +++ ivi/tts-connman-tests/src/WiFi/startup | 30 + ivi/tts-connman-tests/src/common/SignalBase.py | 90 + ivi/tts-connman-tests/src/common/SignalConnman.py | 80 + ivi/tts-connman-tests/src/common/SignalManager.py | 61 + ivi/tts-connman-tests/src/common/SignalService.py | 75 + .../src/common/SignalTechnology.py | 61 + ivi/tts-connman-tests/src/common/bearer.sh | 27 + ivi/tts-connman-tests/src/common/common.py | 1228 +++++++++++ ivi/tts-connman-tests/src/common/config.py | 90 + ivi/tts-connman-tests/src/common/offline.py | 55 + ivi/tts-connman-tests/src/common/property.py | 127 ++ ivi/tts-connman-tests/src/common/signal_func.py | 68 + ivi/tts-connman-tests/tests.xml | 1178 ++++++++++ packaging/common-connectivity-suite.spec | 95 + 357 files changed, 25002 insertions(+) create mode 100755 LICENSE create mode 100755 ivi/tts-bluez-tests/README create mode 100755 ivi/tts-bluez-tests/data/client/README create mode 100755 ivi/tts-bluez-tests/data/client/auto_accept_agent create mode 100755 ivi/tts-bluez-tests/data/client/bluetooth_env create mode 100755 ivi/tts-bluez-tests/data/server/.README.swp create mode 100755 ivi/tts-bluez-tests/data/server/README create mode 100755 ivi/tts-bluez-tests/data/server/auto_accept_agent create mode 100755 ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh create mode 100755 ivi/tts-bluez-tests/data/server/gather_info.sh create mode 100755 ivi/tts-bluez-tests/data/server/server/root_file_1.bmp create mode 100755 ivi/tts-bluez-tests/data/server/server/root_file_2.bmp create mode 100755 ivi/tts-bluez-tests/data/server/server/root_file_3.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/server_info create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt create mode 100755 ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt create mode 100755 ivi/tts-bluez-tests/data/server/server_cleanup.sh create mode 100755 ivi/tts-bluez-tests/data/server/server_startup.sh create mode 100755 ivi/tts-bluez-tests/src/README create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_get_address.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_get_power.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_scan.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_power.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh create mode 100755 ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_get_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_put_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh create mode 100755 ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh create mode 100755 ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh create mode 100755 ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh create mode 100755 ivi/tts-bluez-tests/src/bt_gap_type_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_clock_local.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_dev.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_epinq.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_info.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_inq.sh create mode 100755 ivi/tts-bluez-tests/src/bt_hci_spinq.sh create mode 100755 ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_opp_send_files.sh create mode 100755 ivi/tts-bluez-tests/src/bt_panu_setup_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_add.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_del.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_get.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_search_local.sh create mode 100755 ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh create mode 100755 ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh create mode 100755 ivi/tts-bluez-tests/src/bt_system_package_bluez.sh create mode 100755 ivi/tts-bluez-tests/src/bt_system_package_obexd.sh create mode 100755 ivi/tts-bluez-tests/src/hci_disable_sspmode.sh create mode 100755 ivi/tts-bluez-tests/src/hci_enable_sspmode.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_auth.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_encrypt.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_iscan.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_noauth.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_noencrypt.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_noscan.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_piscan.sh create mode 100755 ivi/tts-bluez-tests/src/hci_set_pscan.sh create mode 100755 ivi/tts-bluez-tests/src/hci_tool_scan.sh create mode 100755 ivi/tts-bluez-tests/tests.xml create mode 100755 ivi/tts-connman-tests/ChangeLog create mode 100755 ivi/tts-connman-tests/README create mode 100755 ivi/tts-connman-tests/bisect.sh create mode 100755 ivi/tts-connman-tests/coverage.ods create mode 100755 ivi/tts-connman-tests/data/apset.tgz create mode 100755 ivi/tts-connman-tests/network.jpg create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_Connect.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_Download.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py create mode 100755 ivi/tts-connman-tests/src/3G/CM_3G_Upload.py create mode 100755 ivi/tts-connman-tests/src/3G/cleanup create mode 100755 ivi/tts-connman-tests/src/3G/startup create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py create mode 100755 ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_Connect.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_Download.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py create mode 100755 ivi/tts-connman-tests/src/BT/CM_BT_Upload.py create mode 100755 ivi/tts-connman-tests/src/BT/bluez_simple_agent.py create mode 100755 ivi/tts-connman-tests/src/BT/cleanup create mode 100755 ivi/tts-connman-tests/src/BT/startup create mode 100755 ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py create mode 100755 ivi/tts-connman-tests/src/Ethernet/startup create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py create mode 100755 ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/Flight/cleanup create mode 100755 ivi/tts-connman-tests/src/Flight/startup create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py create mode 100755 ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py create mode 100755 ivi/tts-connman-tests/src/MBT/fmbt-20m.conf create mode 100755 ivi/tts-connman-tests/src/MBT/fmbt-basic.aal create mode 100755 ivi/tts-connman-tests/src/MBT/fmbt-basic.conf create mode 100755 ivi/tts-connman-tests/src/MBT/teststeps.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_List.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py create mode 100755 ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_State.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_APN.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Domains.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Error.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_MCC.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_MNC.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Mode.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Security.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_State.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Strength.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PS_Type.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PT_Connected.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PT_Powered.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_PT_Type.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_Add.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_List.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py create mode 100755 ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py create mode 100755 ivi/tts-connman-tests/src/Property/startup create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Services.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_State.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_Services.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_State.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py create mode 100755 ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py create mode 100755 ivi/tts-connman-tests/src/Signal/startup create mode 100755 ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py create mode 100755 ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py create mode 100755 ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py create mode 100755 ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py create mode 100755 ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py create mode 100755 ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py create mode 100755 ivi/tts-connman-tests/src/WiFi/cleanup create mode 100755 ivi/tts-connman-tests/src/WiFi/simple-agent create mode 100755 ivi/tts-connman-tests/src/WiFi/startup create mode 100755 ivi/tts-connman-tests/src/common/SignalBase.py create mode 100755 ivi/tts-connman-tests/src/common/SignalConnman.py create mode 100755 ivi/tts-connman-tests/src/common/SignalManager.py create mode 100755 ivi/tts-connman-tests/src/common/SignalService.py create mode 100755 ivi/tts-connman-tests/src/common/SignalTechnology.py create mode 100755 ivi/tts-connman-tests/src/common/bearer.sh create mode 100755 ivi/tts-connman-tests/src/common/common.py create mode 100755 ivi/tts-connman-tests/src/common/config.py create mode 100755 ivi/tts-connman-tests/src/common/offline.py create mode 100755 ivi/tts-connman-tests/src/common/property.py create mode 100755 ivi/tts-connman-tests/src/common/signal_func.py create mode 100755 ivi/tts-connman-tests/tests.xml create mode 100755 packaging/common-connectivity-suite.spec diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..6d45519 --- /dev/null +++ b/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ivi/tts-bluez-tests/README b/ivi/tts-bluez-tests/README new file mode 100755 index 0000000..e001d07 --- /dev/null +++ b/ivi/tts-bluez-tests/README @@ -0,0 +1,65 @@ +----------------------- + Introduction +----------------------- +This suite is to test Bluez stack. +# Usage for each file (under tts-bluez-tests folder): + +src source file of the cases +data/client shared scripts and data on the client side for testing +data/server entire folder should be copied to server machine. + Run server_startup.sh on the server to set up + a daemon to communicate with Client. + +# Needed package/command +pygobject --- python binding for gobject used by pairing script + data/client/auto_accept_agent +md5sum --- to check the file consistence after FTP transfering. +bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part) +When PANU case is running, server should install bridge-utils to create a network bridge as PAN server. + +----------------------- +Install and Run +----------------------- + (if you don't have testkit-lite, you can get it from https://github.com/testkit/testkit-lite) +Steps: +precondition: We need to use two machine, one is server and another is your testing machine as client. + Setup Server environment by three steps as "Test Environment" describe (Please see next section) + Then, rest steps are on testing machine; bluez-test package is needed on testing machine. +Build case: + +1. rpm -ivh tts-bluez-tests-0.1.0-1.i386.rpm --- install RPM to your testing machine + +To run cases, you can either do step.2 or step.3 +2. cd /usr/share/tests/common-connectivity-suite/tts-bluez-tests and run any sh file by root account. +3. testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-bluez-tests/tests.xml --comm localhost -o ./results.xml + + + +----------------------- +Test Environment +----------------------- +1. Setup Server daemon (recommend to use ubuntu-12.04 system) + copy tts-bluez-tests/data/server folder to server machine to /home/USER, run ./bt_pan_server_setup.sh as root to enable PAN server, then run ./server_startup.sh as normal user to enable agent for pairing and OBEX server. + +2. Do confirm your client machine has no old pairing with the server machine, or it will + affect most of the cases. + +3. [On client] install bluez-test package on client, config the environment file: data/client/bluetooth_env: +DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/ +AUTO_AGENT --- the place for agent which used for pairing +SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81" + +4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user. + +----------------------- +Known Issues +----------------------- +For server setup, do please use ubuntu-12.04 system, because: +* Fedora does not contain OBEX. +* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug) +Do please use "su -" to switch to root account for validation. +Note: you can report the defects of this test suite to jingke.zhang@intel.com + +----------------------- +TODO +----------------------- diff --git a/ivi/tts-bluez-tests/data/client/README b/ivi/tts-bluez-tests/data/client/README new file mode 100755 index 0000000..219a5e6 --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/README @@ -0,0 +1,24 @@ +Bluez auto test system client side configuration guide + +1. Set the server's BT mac address in bluetooth_env.sh + +2. Set the root password in bluetooth_env.sh + +3. Files brief info +auto_accept_agent +# A pairing agent + +bluetooth_env +# test environmnet file + +ftp-client +# ftp client tool + +su_normal_do.sh +# execute something in normal user + +sudo_l2ping.sh +# execute l2ping in root user + +sudo_rm.sh +# execute rm file in root user diff --git a/ivi/tts-bluez-tests/data/client/auto_accept_agent b/ivi/tts-bluez-tests/data/client/auto_accept_agent new file mode 100755 index 0000000..70d92f0 --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/auto_accept_agent @@ -0,0 +1,189 @@ +#!/usr/bin/python + +from __future__ import absolute_import, print_function, unicode_literals + +from gi.repository import GObject + +import sys +import dbus +import dbus.service +import dbus.mainloop.glib +from optparse import OptionParser +BLUE_TEST="/usr/lib/bluez/test" +if not BLUE_TEST in sys.path: + sys.path.append(BLUE_TEST) + +import bluezutils + +BUS_NAME = 'org.bluez' +AGENT_INTERFACE = 'org.bluez.Agent1' +AGENT_PATH = "/test/agent" + +bus = None +device_obj = None +dev_path = None + +def ask(prompt): + try: + return raw_input(prompt) + except: + return input(prompt) + +def set_trusted(path): + props = dbus.Interface(bus.get_object("org.bluez", path), + "org.freedesktop.DBus.Properties") + props.Set("org.bluez.Device1", "Trusted", True) + +def dev_connect(path): + dev = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device1") + dev.Connect() + +class Rejected(dbus.DBusException): + _dbus_error_name = "org.bluez.Error.Rejected" + +class Agent(dbus.service.Object): + exit_on_release = True + + def set_exit_on_release(self, exit_on_release): + self.exit_on_release = exit_on_release + + @dbus.service.method(AGENT_INTERFACE, + in_signature="", out_signature="") + def Release(self): + print("Release") + if self.exit_on_release: + mainloop.quit() + + @dbus.service.method(AGENT_INTERFACE, + in_signature="os", out_signature="") + def AuthorizeService(self, device, uuid): + print("AuthorizeService (%s, %s)" % (device, uuid)) + #authorize = ask("Authorize connection (yes/no): ") + authorize = 'yes' + if (authorize == "yes"): + return + raise Rejected("Connection rejected by user") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="s") + def RequestPinCode(self, device): + print("RequestPinCode (%s)" % (device)) + set_trusted(device) + #return ask("Enter PIN Code: ") + return '0000' + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="u") + def RequestPasskey(self, device): + print("RequestPasskey (%s)" % (device)) + set_trusted(device) + passkey = ask("Enter passkey: ") + return dbus.UInt32(passkey) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="ouq", out_signature="") + def DisplayPasskey(self, device, passkey, entered): + print("DisplayPasskey (%s, %06u entered %u)" % + (device, passkey, entered)) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="os", out_signature="") + def DisplayPinCode(self, device, pincode): + print("DisplayPinCode (%s, %s)" % (device, pincode)) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="ou", out_signature="") + def RequestConfirmation(self, device, passkey): + print("RequestConfirmation (%s, %06d)" % (device, passkey)) + #confirm = ask("Confirm passkey (yes/no): ") + confirm = 'yes' + if (confirm == "yes"): + set_trusted(device) + return + raise Rejected("Passkey doesn't match") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="") + def RequestAuthorization(self, device): + print("RequestAuthorization (%s)" % (device)) + #auth = ask("Authorize? (yes/no): ") + auth = 'yes' + if (auth == "yes"): + return + raise Rejected("Pairing rejected") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="", out_signature="") + def Cancel(self): + print("Cancel") + +def pair_reply(): + print("Device paired") + set_trusted(dev_path) + dev_connect(dev_path) + mainloop.quit() + +def pair_error(error): + err_name = error.get_dbus_name() + if err_name == "org.freedesktop.DBus.Error.NoReply" and device_obj: + print("Timed out. Cancelling pairing") + device_obj.CancelPairing() + else: + print("Creating device failed: %s" % (error)) + + + mainloop.quit() + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + + capability = "KeyboardDisplay" + + parser = OptionParser() + parser.add_option("-i", "--adapter", action="store", + type="string", + dest="adapter_pattern", + default=None) + parser.add_option("-c", "--capability", action="store", + type="string", dest="capability") + parser.add_option("-t", "--timeout", action="store", + type="int", dest="timeout", + default=60000) + (options, args) = parser.parse_args() + if options.capability: + capability = options.capability + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = GObject.MainLoop() + + obj = bus.get_object(BUS_NAME, "/org/bluez"); + manager = dbus.Interface(obj, "org.bluez.AgentManager1") + manager.RegisterAgent(path, capability) + + print("Agent registered") + + # Fix-up old style invocation (BlueZ 4) + if len(args) > 0 and args[0].startswith("hci"): + options.adapter_pattern = args[0] + del args[:1] + + if len(args) > 0: + device = bluezutils.find_device(args[0], + options.adapter_pattern) + dev_path = device.object_path + agent.set_exit_on_release(False) + device.Pair(reply_handler=pair_reply, error_handler=pair_error, + timeout=60000) + device_obj = device + else: + manager.RequestDefaultAgent(path) + + mainloop.run() + + #adapter.UnregisterAgent(path) + #print("Agent unregistered") diff --git a/ivi/tts-bluez-tests/data/client/bluetooth_env b/ivi/tts-bluez-tests/data/client/bluetooth_env new file mode 100755 index 0000000..7fdee5c --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/bluetooth_env @@ -0,0 +1,140 @@ +#!/bin/sh +# +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Set environment variable here to specify the BT autotest server's MAC address +SERV_BD_ADDR="00:0A:94:03:EC:CD" +# Server type, we support "computer", "headset", "phone" and "keyboard or mouse" here. +SERV_BD_TYPE="computer" +tmp_file="tmp" +tmp1_file="tmp1" + +DATA_DIR="/usr/lib/bluez/test" +AUTO_AGENT="./data" +user=`whoami` +if [ "${user}" = "root" ]; then + AGENT="${DATA_DIR}/simple-agent" + FTP_CLIENT="${DATA_DIR}/ftp-client" + PBAP_CLIENT="${DATA_DIR}/pbap-client" + TEST_ADAPTER="${DATA_DIR}/test-adapter" + TEST_DEVICE="${DATA_DIR}/test-device" + TEST_DISCOVER="${DATA_DIR}/test-discovery" + HCICONFIG="hciconfig" + KILLPANEL="killall dawati-panel-bluetooth" + KILLAGENT="killall bluetooth-agent" +else + AGENT="sudo ${DATA_DIR}/simple-agent" + FTP_CLIENT="sudo ${DATA_DIR}/ftp-client" + PBAP_CLIENT="sudo ${DATA_DIR}/pbap-client" + TEST_ADAPTER="sudo ${DATA_DIR}/test-adapter" + TEST_DEVICE="sudo ${DATA_DIR}/test-device" + TEST_DISCOVER="sudo ${DATA_DIR}/test-discovery" + HCICONFIG="sudo hciconfig" + KILLPANEL="sudo killall dawati-panel-bluetooth" + KILLAGENT="sudo killall bluetooth-agent" +fi + +killall simple-agent > /dev/null 2>&1 +TEST_NAME_STRING="default" +TEST_TEXT_FILE="${DATA_DIR}/text_file_512k" +export PATH=$PATH:/sbin/:/usr/sbin/:./data/ +adapter="hci0" +# export DISPLAY=:0.0 + +# By this function, it can make sure adapter is available and status is UP. +function adapter_init() +{ + local first_adapter=`$HCICONFIG | grep -o "^hci[0-9]" | sed -n '1p'` + local ret=0 + + if [ -z "${first_adapter}" ]; then + echo "[Critical] No adaptor found!" + exit 1 + elif [ "${adapter}" != "${first_adapter}" ]; then + adapter=${first_adapter} + fi + + if $HCICONFIG | grep "DOWN" > /dev/null ; then + ${HCICONFIG} ${adapter} up + connmanctl enable bluetooth + ret=$? + fi + return $ret +} +function BT_discover() +{ + local ret=0 + for in in `seq 5` + do + timeout 30 ${TEST_DISCOVER} >& /tmp/bt_device_list + cat /tmp/bt_device_list | grep $SERV_BD_ADDR + ret=$? + if [ $ret -eq 0 ] + then + break + fi + done + if [ $ret -ne 0 ] + then + echo 'BT discover fail' + exit 1 + fi + return $ret +} +function auto_pair() +{ + local ret=0 + ${TEST_DEVICE} remove $SERV_BD_ADDR > /dev/null 2>&1 + BT_discover + ${AUTO_AGENT}/auto_accept_agent hci0 $SERV_BD_ADDR + ret=$? + if [ ${ret} -ne 0 ]; then + echo "[FAIL] auto pairing failed!" + exit ${ret} + fi +} + +function agent_setup() +{ + # on netbook, dawati-panel-bluetooth contains agent + local bt_panel=`ps -ef | grep dawati-panel-bluetooth | wc -l` + local bt_agent=`ps -ef | grep bluetooth-agent | wc -l` + + if [ "${bt_panel}" -eq 2 ]; then + # System has dawati-panel-bluetooth process, we restart it + ${KILLPANEL} > /dev/null + # after killall, system will automatically restart the panel + elif [ "${bt_agent}" -eq 2 ]; then + # We need to kill bluetooth-agent firstly + ${KILLAGENT} > /dev/null + # Start our agent + ${AUTO_AGENT}/auto_accept_agent hci0 & + else + # No such a panel, we can setup agent + ${AUTO_AGENT}/auto_accept_agent hci0 & + fi + + sleep 2 +} diff --git a/ivi/tts-bluez-tests/data/server/.README.swp b/ivi/tts-bluez-tests/data/server/.README.swp new file mode 100755 index 0000000000000000000000000000000000000000..7337cf01cc47d1ef9237c84c4ddf42dab07434b4 GIT binary patch literal 4096 zcmYc?2=nw+FxN9?00IF9hJ7A>!4b_C44qL73>BG)`8lbXAQ`*>s!lg0wG6MiI;cYZ zl9FN=)=kPOO|8-`Ni7D7r6iUl>KCULm8BNx2e~@B_`2dXZ&Y$L1V%%Eln~%$Fg7wY sP*ze@5Ecq0MdPU2(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fng8=0M!v98vp 0: + path = manager.FindAdapter(args[0]) + else: + path = manager.DefaultAdapter() + + adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = gobject.MainLoop() + + if len(args) > 1: + if len(args) > 2: + device = adapter.FindDevice(args[1]) + adapter.RemoveDevice(device) + + agent.set_exit_on_release(False) + adapter.CreatePairedDevice(args[1], path, capability, + reply_handler=create_device_reply, + error_handler=create_device_error) + else: + adapter.RegisterAgent(path, capability) + print "Agent registered" + + mainloop.run() + + #adapter.UnregisterAgent(path) + #print "Agent unregistered" diff --git a/ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh b/ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh new file mode 100755 index 0000000..71dd990 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Guo, Zhaojuan +# Date Created: 2010/12/02 +# +# Modifications: +# Modificator Date +# Content of Modification + +# DESC:build pan server envieroment + +brctl addbr pan1 + +ifconfig pan1 192.168.0.1 + +echo 1 > /proc/sys/net/ipv4/ip_forward + +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE + +iptables -A FORWARD -i pant1 -j ACCEPT + diff --git a/ivi/tts-bluez-tests/data/server/gather_info.sh b/ivi/tts-bluez-tests/data/server/gather_info.sh new file mode 100755 index 0000000..84783b6 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/gather_info.sh @@ -0,0 +1 @@ +find . | xargs file | grep -v directory | awk '{print $1}' | sed 's/://g' | xargs md5sum | awk '{print $2" , "$1}' diff --git a/ivi/tts-bluez-tests/data/server/server/root_file_1.bmp b/ivi/tts-bluez-tests/data/server/server/root_file_1.bmp new file mode 100755 index 0000000000000000000000000000000000000000..9fa880ffeb38026e407131cf689b5e934b9f6998 GIT binary patch literal 385254 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 literal 0 HcmV?d00001 diff --git a/ivi/tts-bluez-tests/data/server/server/root_file_3.txt b/ivi/tts-bluez-tests/data/server/server/root_file_3.txt new file mode 100755 index 0000000..29a7790 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/root_file_3.txt @@ -0,0 +1 @@ +Bluetooth test automation test file 3. \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server/server_info b/ivi/tts-bluez-tests/data/server/server/server_info new file mode 100755 index 0000000..b217664 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/server_info @@ -0,0 +1,18 @@ +dir_count root 3 +dir_count subdir1 0 +dir_count subdir2 0 +dir_count subdir3 0 +file_count root 3 +file_count subdir1 2 +file_count subdir2 2 +file_count subdir3 2 +file_info root_file_1.bmp 5fc73cdae0cd26443a1a33f9d7e82fa4 +file_info subdir1/subdir1_test_file2.txt 550c58665e01733318fc82f802ae8b38 +file_info subdir1/subdir1_test_file1.txt 838d95ab225a57b134bcaf5a2ca0a38e +file_info subdir3/subdir3_test_file2.txt b97a64574c2990b64052659a1dfa3b59 +file_info subdir3/subdir3_test_file1.txt d41d8cd98f00b204e9800998ecf8427e +file_info root_file_3.txt 773ad21b18f8779f953208ec6fb8256b +file_info server_info d41d8cd98f00b204e9800998ecf8427e +file_info root_file_2.bmp 2223b8d830acc1b149d30bbfa1016018 +file_info subdir2/subdir2_test_file2.txt 7460ddc4d60c0260184fea8b5ca6ca07 +file_info subdir2/subdir2_test_file1.txt 531035c7a4a45889f1f6d5c199fee73c diff --git a/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt new file mode 100755 index 0000000..28a75f3 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt @@ -0,0 +1,2328 @@ +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 diff --git a/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt new file mode 100755 index 0000000..42bdd5f --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt @@ -0,0 +1,1530 @@ +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt diff --git a/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt new file mode 100755 index 0000000..9951c07 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt @@ -0,0 +1,2220 @@ +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + + diff --git a/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt new file mode 100755 index 0000000..112ffdf --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt @@ -0,0 +1 @@ +Oh, I am a small file:) \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt new file mode 100755 index 0000000..e69de29 diff --git a/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt new file mode 100755 index 0000000..c190e65 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt @@ -0,0 +1,48 @@ +Bluetooth test automation sample file: subdir3_test_file2.txt +dsfasf +asdfjasdf'asd +fads +fasdfadsjfas'dfk +dsf;las +dflas +fasldf4rjzsd'fks +DF +asdfas +asdfasdf +asdfasdf +adsf +as +df +asdf +as +df +asdf +as +rt34 +rads + +zxc +vzx +f +ewf +32 +a +d +fas +f +as +r3 +ra +sdf +as +df +as +f +t6 +dfgsd +fgh + +h[pasfkas;fASdfj +32-o +SDl'jbkll +e# \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server_cleanup.sh b/ivi/tts-bluez-tests/data/server/server_cleanup.sh new file mode 100755 index 0000000..0aa3856 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server_cleanup.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Wan Shuang +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification + +agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'` + +if [ -n "$agent_pid" ]; then + kill -KILL $agent_pid + echo "Pairing agent released" +fi + +rm server_tmp -rf +echo "Temporary directory server_tmp for file transfer test has been removed." + diff --git a/ivi/tts-bluez-tests/data/server/server_startup.sh b/ivi/tts-bluez-tests/data/server/server_startup.sh new file mode 100755 index 0000000..53c550f --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server_startup.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Wan Shuang +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +set -x +obexd_pid=`ps aux | grep obexd | grep -v grep | awk '{print $2}'` + +echo "obexd_pid: $obexd_pid" + +if [ -n "$obexd_pid" ]; then + kill -KILL $obexd_pid +fi + +agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'` + +if [ -z "$agent_pid" ]; then + echo "Auto accpet pairing agent is starting..." + ./auto_accept_agent hci0 & +fi + +rm server_tmp -rf +cp server server_tmp -raf + +trap './server_cleanup.sh' INT +export DISPLAY=:0.0 +echo "Start the obexd daemon" + +# This is only for obexd-server > 0.42 version. +/usr/lib/obexd/obexd -n -d -a `pwd`/server +# The obexd may be installed in directory in /usr/lib/obex +# if so, please use bellow command to start obexd +#/usr/lib/obexd/obexd -n -d -a -f -o -r `pwd`/server_tmp diff --git a/ivi/tts-bluez-tests/src/README b/ivi/tts-bluez-tests/src/README new file mode 100755 index 0000000..a7bf485 --- /dev/null +++ b/ivi/tts-bluez-tests/src/README @@ -0,0 +1,77 @@ +----------------------- + Introduction +----------------------- +This suite is to test Bluez stack. +# Usage for each file (under tts-bluez-tests folder): + +src source file of the cases +data/client shared scripts and data on the client side for testing +data/server entire folder should be copied to server machine. + Run server_startup.sh on the server to set up + a daemon to communicate with Client. + +# Needed package/command +gcc make --- common packages for make +pygobject --- python binding for gobject used by pairing script + data/client/auto_accept_agent +rpm-build --- for packaging +md5sum --- to check the file consistence after FTP transfering. +bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part) +When PANU case is running, server should install bridge-utils to create a network bridge as PAN server. + +----------------------- +Build and Run +----------------------- +(Suppose you only get the source code and testrunner-lite has been setup on your test machine + if you have got tts-bluez-tests RPM, you can directly go to step.4 on testing machine + if you have not installed the testrunner, you can follow the README of framework) +Steps: +1. We need to use two machine, one is server and another is your testing machine as client. + Setup Server environment by three steps as "Test Environment" describe (Please see next section) + Then, rest steps are on testing machine +2. cd tts-bluez-tests +3. sh pack.sh --- It will make and generate the tts-bluez-tests RPM +4. rpm -ivh tts-bluez-tests-1.0.0-1.i386.rpm --- install RPM to your testing machine + +To run cases, you can either do step.5 or step.6 +5. cd /opt/tts-bluez-tests/ and run any sh file by root account. +6. (if you use testkit-lite tool) testrunner-lite -f /usr/share/tts-bluez-tests/tests.xml -o /tmp/results.xml + + +----------------------- +Common Install +----------------------- +./autogen +./configure prefix=/usr +make && make install + + +----------------------- +Test Environment +----------------------- +1. Setup Server daemon (Strongly recommend to use ubuntu-10.04 system) + copy tts-bluez-tests/data/server folder to server machine, run ./bt_pan_server_setup.sh to enable PAN server, + then run ./server_startup.sh to enable OBEX server. + +2. Do confirm your client machine has no old pairing with the server machine, or it will + affect most of the cases. + +3. [On client] Config the environment file on client, the file is data/client/bluetooth_env: +DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/ +SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81" + +4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user. + +----------------------- +Known Issues +----------------------- +For server setup, do please use ubuntu-10.04 system, because: +* Fedora does not contain OBEX. +* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug) +* You can use Tizen image to be BT OBEX server, however, it cannot be PAN server, for it does not have bridge-utils. +Do please use "su -" to switch to root account for validation. +Note: you can report the defects of this test suite to jingke.zhang@intel.com + +----------------------- +TODO +----------------------- diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh new file mode 100755 index 0000000..c55a218 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh @@ -0,0 +1,43 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's MAC address. +mac_addr=`${TEST_ADAPTER} address` + +if [ -z "$mac_addr" ]; then + echo "[FAIL] No Bluetooth Adapter MAC address is found" + ret=1 +else + echo "[PASS] Bluetooth MAC address is: $mac_addr" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh new file mode 100755 index 0000000..020bdf1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's discoverabletimeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout` + +if [ -z "$discover_timeout" ]; then + echo "[FAIL] No Bluetooth Adapter discoverabletimeout is found" + ret=1 +else + echo "[PASS] Bluetooth discoverabletimeout is: $discover_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh new file mode 100755 index 0000000..ec94fdf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's discovering status, 0 for Not discovering, +# 1 for adapter is in discovering. +hcitool scan > /dev/null & +discovering=`${TEST_ADAPTER} discovering` + +if [ $discovering -ne 1 ]; then + echo "[FAIL] Bluetooth Adapter is in discovering, but discovering status is: $discovering" + ret=1 +else + echo "[PASS] Bluetooth Adapter is in discovering, status is: 1" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh new file mode 100755 index 0000000..33ef88d --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's pairabletimeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout` + +if [ -z "$pair_timeout" ]; then + echo "[FAIL] No Bluetooth Adapter pairabletimeout is found" + ret=1 +else + echo "[PASS] Bluetooth Adapter pairabletimeout is: $pair_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh new file mode 100755 index 0000000..c6865c7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's powered status. +power=`${TEST_ADAPTER} powered` + +if [ -z "$power" ]; then + echo "[FAIL] No Bluetooth Adapter power status is found" + ret=1 +else + echo "[PASS] Bluetooth Adapter power status is: $power (0 for OFF, 1 for ON)" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_scan.sh b/ivi/tts-bluez-tests/src/bt_adapter_scan.sh new file mode 100755 index 0000000..426b48f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_scan.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's MAC address. +killall ${TEST_DISCOVER} > /dev/null 2>&1 +${TEST_DISCOVER} > ${tmp_file} & +sleep 3 +killall ${TEST_DISCOVER} > /dev/null 2>&1 +num=`wc -l ${tmp_file}` + +if [ ${num} -lt 11 ]; then + echo "[FAIL] No Bluetooth Device is discoverred or your adapter bt scan fail" + ret=1 +else + echo "[PASS] Bluetooth Device discover successfully." +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh new file mode 100755 index 0000000..a2b2a4f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh @@ -0,0 +1,55 @@ +#!/bin/sh +#DESCR: Check to get discoverable status to Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to no-pscan and no-iscan +${TEST_ADAPTER} discoverable on +$HCICONFIG $adapter iscan +sleep 2 + +iscan=`${TEST_ADAPTER} discoverable` +[ $iscan -eq 0 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1 + +# Set discoverable scan for the adapter +${TEST_ADAPTER} discoverable off + +# get power status +iscan=`${TEST_ADAPTER} discoverable` + +if [ ${iscan} -eq 0 ]; then + echo "[PASS] Adapter discoverable is Off now" +else + echo "[FAIL] Adapter discoverable is still On" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh new file mode 100755 index 0000000..41badd1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get discoverable status to On for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to no-pscan and no-iscan +$HCICONFIG $adapter noscan + +iscan=`${TEST_ADAPTER} discoverable` +[ $iscan -eq 1 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1 + +# Set discoverable scan for the adapter +${TEST_ADAPTER} discoverable on + +# get power status +iscan=`${TEST_ADAPTER} discoverable` + +if [ ${iscan} -eq 1 ]; then + echo "[PASS] Adapter discoverable is ON" +else + echo "[FAIL] Adapter discoverable is still OFF" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh new file mode 100755 index 0000000..c888986 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +timeout=100 + +# Set local hci0's discoverabletimeout to $timeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout $timeout` + +# Get local hci0's discoverabletimeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout` + +if [ $discover_timeout -ne $timeout ]; then + echo "[FAIL] Bluetooth Adapter discoverabletimeout should be set to $timeout, but it is: $discover_timeout" + ret=1 +else + echo "[PASS] Bluetooth discoverabletimeout is set to: $discover_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh new file mode 100755 index 0000000..79dc70a --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get pairable status to Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to pscan On +echo "Initialize to set pairable On" +${TEST_ADAPTER} pairable on + +pair=`${TEST_ADAPTER} pairable` +[ $pair -eq 0 ] && echo "[FAIL] fail to set pscan On" && exit 1 + +# Set pairable scan for the adapter +${TEST_ADAPTER} pairable off + +# get power status +pair=`${TEST_ADAPTER} pairable` + +if [ ${pair} -eq 0 ]; then + echo "[PASS] Adapter pairable is Off now" +else + echo "[FAIL] Adapter pairable is still On" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh new file mode 100755 index 0000000..3c09429 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get pairable status to On for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Set pairable to Off +${TEST_ADAPTER} pairable off +pair=`${TEST_ADAPTER} pairable` +[ $pair -eq 1 ] && echo "[FAIL] pairable cannot be initialized to Off" && exit 1 + +# Set pairable scan for the adapter +${TEST_ADAPTER} pairable on + +# get power status +pair=`${TEST_ADAPTER} pairable` + +if [ ${pair} -eq 1 ]; then + echo "[PASS] Adapter pairable is ON" +else + echo "[FAIL] Adapter pairable is still OFF" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh new file mode 100755 index 0000000..eee3fd7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +timeout=100 + +# Set local hci0's pairabletimeouttimeout to $timeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout $timeout` + +# Get local hci0's pairabletimeouttimeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout` + +if [ $pair_timeout -ne $timeout ]; then + echo "[FAIL] Bluetooth Adapter pairabletimeout should be set to $timeout, but it is: $pair_timeout" + ret=1 +else + echo "[PASS] Bluetooth pairabletimeout is set to: $pair_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh new file mode 100755 index 0000000..8b9c881 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get power status to On/Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Assume the bluetooth power is On before testing. +${TEST_ADAPTER} powered off + +# get power status +power=`${TEST_ADAPTER} powered` + +if [ ${power} -eq 0 ]; then + echo "[PASS] Adapter power is OFF" +else + echo "[FAIL] Adapter power is still ON, fail to power off hci0" + ret=1 +fi + +${TEST_ADAPTER} powered on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh new file mode 100755 index 0000000..d6f0f2d --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh @@ -0,0 +1,58 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # Make adapter discoverable off and check + ${TEST_ADAPTER} discoverable off + discover=`${TEST_ADAPTER} discoverable` + + if [ ${discover} -eq 1 ]; then + echo "[FAIL] Adapter discoverable is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # Make adapter discoverable on and prepare for next off + ${TEST_ADAPTER} discoverable on +done + +${TEST_ADAPTER} discoverable on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh new file mode 100755 index 0000000..f0e0673 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh @@ -0,0 +1,58 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # Make adapter pairable off and check + ${TEST_ADAPTER} pairable off + pair=`${TEST_ADAPTER} pairable` + + if [ ${pair} -eq 1 ]; then + echo "[FAIL] Adapter pairable is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # Make adapter pairable on and prepare for next off + ${TEST_ADAPTER} pairable on +done + +${TEST_ADAPTER} pairable on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh new file mode 100755 index 0000000..195298b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh @@ -0,0 +1,61 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # check power status, if not ON, exit test. + [ `${TEST_ADAPTER} powered` -eq 0 ] && "[FAIL] initial power is off" && ret=1 + + # Power off adapter and check + ${TEST_ADAPTER} powered off + power=`${TEST_ADAPTER} powered` + + if [ ${power} -eq 1 ]; then + echo "[FAIL] Adapter power is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # power on the adapter and prepare for next off + ${TEST_ADAPTER} powered on +done + +${TEST_ADAPTER} powered on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh new file mode 100755 index 0000000..bac6740 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh @@ -0,0 +1,57 @@ +#!/bin/sh +#DESCR: Check FTP (File transfer profile) folder navigation from FTP client. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# Change to the sub directory just selected and browse the content of it +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -l > /tmp/tmp_folder_nav.log + +# Check file count property of the sub directory +row_count=`wc -l /tmp/tmp_folder_nav.log | awk '{print $1}'` + +# Compare the server info file and folder count we get +if [ "$row_count" -ne 2 ]; then + echo "[FAIL] Check folder navigation and browse: Failed" + exit 1 +fi + +# Delete the temporary files +rm -rf /tmp/tmp_folder_nav.log + +echo "[PASS] Check folder navigation and browse: Successful" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh new file mode 100755 index 0000000..cd5fc3b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) file get +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# get subdir1/subdir1_test_file1.txt +filename="subdir1_test_file1.txt" +md5string="838d95ab225a57b134bcaf5a2ca0a38e" +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename} + +if [ ! -f $filename ]; then + echo "[FAIL] Test file not got!" + exit 1 +fi + +md5string_local=`md5sum $filename | awk '{print $1}'` + +if [ "$md5string" != "$md5string_local" ]; then + echo "[FAIL] md5 string mismatch." + rm -rf "$filename" + exit 1 +fi + +echo "md5 strings are same, file get checking successfully!" +echo "[PASS] Check FTP get file: Successful" + +rm -rf "$filename" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh new file mode 100755 index 0000000..9edabaa --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification + +#set -x + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 +adapter_init +auto_pair +agent_setup + +filename="subdir1_test_file1.txt" +md5string="838d95ab225a57b134bcaf5a2ca0a38e" +touch ${filename} +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename} +md5string_local=`md5sum $filename |awk '{print $1}'` + +# Check if the original file is covered. +if [ "$md5string_local" != "$md5string" ]; then + echo "[FAIL] Check FTP get exist file:Failed!" +else + echo "[PASS] Check FTP get exist file:Successfuly!" +fi + +rm -r ${filename} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh new file mode 100755 index 0000000..d8cc732 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 +adapter_init +auto_pair +agent_setup + +subdir="subdir1" +wrong_folder="subdir4" + +echo "This is a temporary file."> /tmp/tmp_ftp_put.log + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $wrong_folder -p /tmp/tmp_ftp_put.log +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "Can not put this file because the folder is wrong!" + echo "[PASS] Check FTP put wrong folder:Successfuly!" + rm -rf /tmp/tmp_ftp_put.log +else + echo "[FAIL] Check FTP put wrong folder:Failed!" +fi +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh new file mode 100755 index 0000000..e2fb652 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh @@ -0,0 +1,80 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair +agent_setup + +subdir="subdir1" +tmp_folder_name="tmp_folder_name1" +tmp_file_name="tmp_ftp" +tmp1_file_name="tmp_file" + +${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log +created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c` +if [ $created -le 0 ]; then + echo "The folder $tmp_folder_name is not created!" + echo "Check FTP folder create: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -ne 1 ]; then + echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp1_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -gt 0 ]; then + echo "Can not delete the file $tmp1_file_name under folder $tmp_folder_name!" + echo "[PASS] Check FTP noexist file remove: successfuly" + rm -rf ./tmp_ftp_folder.log + rm -r $tmp_file_name + exit 0 +fi + +rm -rf ./tmp_ftp_folder.log +rm -f $tmp_file_name + +echo "[FAIL] Check FTP noexist file remove: Failed" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh new file mode 100755 index 0000000..62b18b7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) put file +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +subdir="subdir1" + +# Create a temporary file +echo "This is a temporary file."> /tmp/tmp_ftp_put.log + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p /tmp/tmp_ftp_put.log + +rm -rf /tmp/tmp_ftp_put.log + +# Try to get the file count of the folder we just pushed. +newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | wc -l` + +if [ "$newfilecount" -ne 3 ]; then + echo "Failed to upload file tmp_ftp_put.log to FTP server!" + echo "[FAIL] Check FTP file put: Failed" + exit 1 +fi + +# remove the file we just pushed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r tmp_ftp_put.log + +echo "[PASS] Check FTP file put: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh new file mode 100755 index 0000000..e62d402 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh @@ -0,0 +1,90 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) folder manipulation includs create, remove +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +tmp_folder_name="tmp_folder_name1" +tmp_file_name="tmp_ftp" + +# Create a folder on server's root directory +${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name + +# List the server's root directory and check if +# the new created sub-folder listed in the folder browse output +${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log +created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c` +if [ $created -le 0 ]; then + echo "The folder $tmp_folder_name is not created!" + echo "Check FTP folder create: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +# Create a temporary file +echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name + +# List the root folder again and check if the folder really got removed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -ne 1 ]; then + echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +# Remove the folder we just created +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp_file_name + +# List the root folder again and check if the folder really got removed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -gt 0 ]; then + echo "Failed to delete the file $tmp_file_name under folder $tmp_folder_name!" + echo "[FAIL] Check FTP new folder file remove: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +rm -rf ./tmp_ftp_folder.log +rm -f $tmp_file_name + +echo "[PASS] Check FTP new folder file create & remove: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh b/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh new file mode 100755 index 0000000..b623c79 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh @@ -0,0 +1,73 @@ +#!/bin/sh +#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server. +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# make a big file in local directory, size is 10MB, name is "10M_file" +big_file="10M_file" +cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file +cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file +cat ./5M_file ./5M_file > $big_file +rm -f ./1M_file ./5M_file + +subdir="subdir1" + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file} +sleep 5 + +# Download this file to FTP server +rm -f $big_file +time1=`date +%s` +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -g `pwd`/${big_file} +time2=`date +%s` +duration=`expr $time2 - $time1` + +# search this file on Server +ls | grep "${big_file}" > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] Failed to download big 10M file from FTP server!" + ret=1 +else + echo "[PASS] succeed in downloading a 10MB file from server, using ${duration} seconds." +fi + +# Delete the big file +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} +rm -f ${big_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh b/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh new file mode 100755 index 0000000..d4eab24 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh @@ -0,0 +1,71 @@ +#!/bin/sh +#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server. +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# make a big file in local directory, size is 10MB, name is "10M_file" +big_file="10M_file" +cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file +cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file +cat ./5M_file ./5M_file > $big_file +rm -f ./1M_file ./5M_file + +subdir="subdir1" + +# Delete the same name file on Server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} + +# Upload this file to FTP server +time1=`date +%s` +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file} +time2=`date +%s` +duration=`expr $time2 - $time1` + +# search this file on Server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | grep "${big_file}" > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] Failed to upload big 10M file to FTP server!" + ret=1 +else + echo "[PASS] succeed in uploading a 10MB file to server, using ${duration} seconds." +fi + +# Delete the big file +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} +rm -f ${big_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh b/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh new file mode 100755 index 0000000..24b900e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Pair the bluetooth server computer. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# Get the paired computer. +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -eq 0 ]; then + echo "[PASS] The computer server is paired successfully!" +else + echo "[FAIL] The computer server is not paired." + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh b/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh new file mode 100755 index 0000000..caa1e85 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh @@ -0,0 +1,59 @@ +#!/bin/sh +#DESCR: Pair the bluetooth server computer and check to remove it. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# make sure computer is paired successfully +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -eq 0 ]; then + echo "[PASS] The computer server is paired successfully!" +else + echo "[FAIL] The computer server is not paired." + ret=0 +fi + +# Remove the paired computer, and check again. +sleep 2 +${TEST_DEVICE} remove $SERV_BD_ADDR + +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -ne 0 ]; then + echo "[PASS] The computer server is removed successfully!" +else + echo "[FAIL] The computer server is not removed." + ret=0 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_gap_type_check.sh b/ivi/tts-bluez-tests/src/bt_gap_type_check.sh new file mode 100755 index 0000000..cf3675e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_type_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check the remote device type after pairing with it. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# Get the paired computer type. +# class_number=`${TEST_DEVICE} class $SERV_BD_ADDR` + Icon_device=`${TEST_DEVICE} Icon $SERV_BD_ADDR` + +case $Icon_device in +#case $class_number in + 0) device_type="computer" ;; + 1) device_type="computer" ;; + 2) device_type="phone" ;; + 4) device_type="headset" ;; + 5) device_type="keyboard or mouse" ;; + *) device_type="not captured" ;; +esac + +if [ "${device_type}" = "${SERV_BD_TYPE}" ]; then + echo "[PASS] Correct! The server device type is $device_type." +else + if [ "$device_type" = "not captured" ]; then + echo "[FAIL] Sorry, test case cannot judge what it is. Please inform case maker, thanks!" + else + echo "[FAIL] No, the server device is $device_type, but you assign ${SERV_BD_TYPE} in config file." + ret=1 + fi +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh b/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh new file mode 100755 index 0000000..1be660a --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool clock |grep "Clock" +ret=$? + +if [ $ret -eq 0 ] ; then + echo "[PASS] Get local clock:successfuly!" +else + echo "[FAIL] Get local clock:Failed!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh b/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh new file mode 100755 index 0000000..973d0e8 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair + +ret=1 + +hcitool clock $SERV_BD_ADDR |grep "Clock" +ret=$? + +if [ $ret -eq 0 ] ; then + echo "[PASS] Get remote clock:successfuly!" +else + echo "[FAIL] Get remote clock:Failed!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_dev.sh b/ivi/tts-bluez-tests/src/bt_hci_dev.sh new file mode 100755 index 0000000..04d62c2 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_dev.sh @@ -0,0 +1,43 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +device=`hcitool dev |grep -v "Devices:"` + +if [ -n "$device" ] ; then + echo "[PASS] Display local devices:successfuly!" +else + echo "[FAIL] There is no local bluetooth device!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_epinq.sh b/ivi/tts-bluez-tests/src/bt_hci_epinq.sh new file mode 100755 index 0000000..91163d8 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_epinq.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool epinq +$HCICONFIG |grep "INQUIRY" +ret=$? + +if [ $ret -ne 0 ]; then + echo "[PASS] Exit periodic inquiry:Successfuly!" +else + echo "[FAIL] Exit periodic inquiry:Failed!" + exit 1 +fi diff --git a/ivi/tts-bluez-tests/src/bt_hci_info.sh b/ivi/tts-bluez-tests/src/bt_hci_info.sh new file mode 100755 index 0000000..c4fe4ec --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_info.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=0 + +hcitool info ${SERV_BD_ADDR} +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "[PASS] Get server's information:Successfuly!" +else + echo "[FAIL] Get server's information:Failed!" +fi + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_hci_inq.sh b/ivi/tts-bluez-tests/src/bt_hci_inq.sh new file mode 100755 index 0000000..a5352db --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_inq.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=0 + +hcitool inq +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "[PASS] Get server's information:Successfuly!" +else + echo "[FAIL] Get server's information:Failed!" +fi + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_hci_spinq.sh b/ivi/tts-bluez-tests/src/bt_hci_spinq.sh new file mode 100755 index 0000000..0d80bd2 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_spinq.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool spinq +$HCICONFIG |grep "INQUIRY" +ret=$? + +if [ $ret -eq 0 ]; then + echo "[PASS] Start periodic inquiry:Successfuly!" +else + echo "[FAIL] Start periodic inquiry:Failed!" + exit 1 +fi diff --git a/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh b/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh new file mode 100755 index 0000000..5caff0e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check l2cap socket communication using l2ping +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# Ping server for 4 times. +l2ping $SERV_BD_ADDR -c 4 > /tmp/l2ping.log + +num_reply=`cat /tmp/l2ping.log | grep "44 bytes from $SERV_BD_ADDR" -c` + +rm -rf /tmp/l2ping.log + +if [ "$num_reply" -le 0 ]; then + echo "no response recieved from adaptor $SERV_BD_ADDR" + echo "[FAIL] Check l2cap socket communication using l2ping: Failed" + exit 1 +else + echo "l2cap ping check passed, got $num_reply responses from $SERV_BD_ADDR" + echo "[PASS] Check l2cap socket communication using l2ping: Successfully" +fi + +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_opp_send_files.sh b/ivi/tts-bluez-tests/src/bt_opp_send_files.sh new file mode 100755 index 0000000..601978b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_opp_send_files.sh @@ -0,0 +1,73 @@ +#!/bin/sh +set -x +#DESCR: Check OPP (Objects Push Profile) by putting files to OPP server +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/12/23 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# Get the last opp test file number on server root dir. +oldfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"` +opp_lastfile_number=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep "tmp_opp_send" | awk -v max=0 -F"_" '{if($NF>max) {max=$NF ; print max}}' | tail -n 1` + +# Create 3 temporary files, whose suffix number is bigger than last file number +temp_number=3 + +i=0 +while [ $i -lt $temp_number ]; +do + temp_file="tmp_opp_send_`expr ${opp_lastfile_number} + 1`" + cp ${DATA_DIR}/object $temp_file + ${DATA_DIR}/opp-client -d $SERV_BD_ADDR -s $temp_file + ((i++)) + ((opp_lastfile_number++)) +done + +# Upload this file to FTP server, if the file is not text, server will use +# OPP (channel 9) to receive + +rm -rf tmp_opp_send_* + +# Try to get the file count of the folder we just pushed. +newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"` + +if [ $newfilecount -ne `expr $oldfilecount + $temp_number` ]; then + echo "Failed to upload files tmp_opp_send_* to OPP server!" + echo "[FAIL] Check OPP file put: Failed" + exit 1 +fi + +echo "[PASS] Check OPP files put: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh b/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh new file mode 100755 index 0000000..a87e2a5 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh @@ -0,0 +1,68 @@ +#!/bin/sh +#DESCR: Set up PAN User and ping the PAN Server's IP (client gateway). +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang, Jingke +# Date Created: 2010/12/02 +# +# Modifications: +# Modificator Date +# Content of Modification + +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +#run the script to connect the server +killall test_network > /dev/null +${DATA_DIR}/test_network $SERV_BD_ADDR nap >/dev/null & + +# Sleep for some seconds to let test_network finish. +sleep 5 + +#you will have bnep0 if the connection successful +ifconfig | grep "bnep0" > /dev/null +if [ $? -ne 0 ]; then + echo "Have not build connection to server!" + exit 1 +else + echo "Step1: Build connection to server successfully!" +fi + +#Assign ip for bnep0, server has been set to 192.168.0.1 +ifconfig bnep0 192.168.0.2 + +#Add default gw +route add default gw 192.168.0.1 +echo "Wait for 10 seconds." +sleep 10 + +#ping your server address +ping 192.168.0.1 -c 1 > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] no response recieved from adaptor $SERV_BD_ADDR" + exit 1 +fi + +echo "[PASS] Step2: Ping gateway successfully. PANU profile passed" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh b/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh new file mode 100755 index 0000000..06b08a3 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check pbap profile +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang, Jingke +# Date Created: 2010/12/09 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +agent_setup + +contacts=`${PBAP_CLIENT} $SERV_BD_ADDR | grep "BEGIN:VCARD" | wc -l` + +if [ $contacts -eq 0 ]; then + echo "[FAIL] Fail to get the phonebook from remote" + exit 1 +fi + +echo "[PASS] Successfully get the phonebook from remote" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_sdp_add.sh b/ivi/tts-bluez-tests/src/bt_sdp_add.sh new file mode 100755 index 0000000..812aea0 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_add.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +sdptool add DUN +service_name=`sdptool search --bdaddr local DUN |grep "Service Name"` + +if [ -n "$service_name" ] ; then + echo "$service_name" + echo "[PASS] Add DUN service:Successfuly!" +else + echo "[FAIL] Add DUN service:Failed!" + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh b/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh new file mode 100755 index 0000000..eddd0a9 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 + +# Local device should support SDP Server. +service_record=`sdptool browse local | grep "Service Name"` +line=`echo $service_record | wc -l` +if [ 0 -eq $line ]; then + echo "[FAIL] No SDP Server support" + ret=1 +else + echo "[PASS] Device support SDP Server, local service list is:" + echo "$service_record" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh b/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh new file mode 100755 index 0000000..ad667d4 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 + +# Local device should support SDP Client, it should be able to browse remote SDP Server. +service_record=`sdptool browse ${SERV_BD_ADDR} | grep "Service Name"` +line=`echo $service_record | wc -l` +if [ 0 -eq $line ]; then + echo "[FAIL] No SDP Client support" + ret=1 +else + echo "[PASS] Device support SDP Client, remote server's service list is:" + echo "$service_record" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_sdp_del.sh b/ivi/tts-bluez-tests/src/bt_sdp_del.sh new file mode 100755 index 0000000..120f63f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_del.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add --handle=0x10000 LAN +sdptool del 0x10000 +service=`sdptool records local | grep "Service RecHandle: 0x10000"` + +if [ -z "$service" ]; then + echo "[PASS] Delete 0x10000 service:Successfuly!" +else + echo "[FAIL] Delete 0x10000 service:Failed!" + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_get.sh b/ivi/tts-bluez-tests/src/bt_sdp_get.sh new file mode 100755 index 0000000..8e46d1e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_get.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add --handle=0x10000 FTP +service=`sdptool get 0x10000 |grep "Service Name"` + +if [ -n "$service" ]; then + echo "[PASS] Get local 0x10000 service:Successfuly!" +else + echo "[FAIL] Get local 0x10000 service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh b/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh new file mode 100755 index 0000000..c1beaaf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add FTP +service=`sdptool search --bdaddr=local FTP |grep "OBEX File Transfer"` + +if [ -n "$service" ]; then + echo "[PASS] Search local FTP service:Successfuly!" +else + echo "[FAIL] Search local FTP service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh b/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh new file mode 100755 index 0000000..3d9d550 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair + +service=`sdptool search --bdaddr=$SERV_BD_ADDR FTP |grep "OBEX File Transfer"` + +if [ -n "$service" ]; then + echo "[PASS] Search local FTP service:Successfuly!" +else + echo "[FAIL] Search local FTP service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh b/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh new file mode 100755 index 0000000..8a9a871 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh @@ -0,0 +1,37 @@ +#!/bin/sh +#DESCR: Check if bluetoothd has been started +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Jingke Zhang +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification + +bt_daemon_pid=`ps aux | grep bluetoothd | grep -v grep | awk '{print $2}' | head -n 1` + +if [ -z "$bt_daemon_pid" ]; then + echo "bluetoothd daemon isn't started, this is a crital failure" + echo "[FAIL] Check if bluetoothd daemon started: Failed" + exit 1 +else + echo "Check if bluetoothd daemon started: Successfully" + echo "[PASS] bluetoothd daemon has been started, the pid is: $bt_daemon_pid" + exit 0 +fi diff --git a/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh b/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh new file mode 100755 index 0000000..4720c6c --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh @@ -0,0 +1,38 @@ +#!/bin/sh +#DESCR: Check if the stack packages are installed in system +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +ret=0 +P_Bluez=`rpm -qa | grep "bluez-[0-9]"` + +if [ -z "$P_Bluez" ]; then + echo "No Bluez package is found!" + ret=1 +else + echo "[PASS] Bluez package is: $P_Bluez" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh b/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh new file mode 100755 index 0000000..8291cdf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh @@ -0,0 +1,38 @@ +#!/bin/sh +#DESCR: Check if the stack packages are installed in system +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +ret=0 +P_obexd=`rpm -qa | grep "obexd-[0-9]"` + +if [ -z "$P_obexd" ]; then + echo "No obexd package is found!" + ret=1 +else + echo "[PASS] obexd package is: $P_obexd" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh b/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh new file mode 100755 index 0000000..8d98e93 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} sspmode 0 +${HCICONFIG} ${adapter} sspmode > ${tmp_file} +grep -w "Disabled" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Disable sspmode successfuly!" +else + echo "[FAIL] Fail to disable sspmode!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh b/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh new file mode 100755 index 0000000..b7e8abf --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} sspmode 1 +${HCICONFIG} ${adapter} sspmode > ${tmp_file} +grep -w "Enabled" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Enable sspmode successfuly!" +else + echo "[FAIL] Fail to enable sspmode!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_auth.sh b/ivi/tts-bluez-tests/src/hci_set_auth.sh new file mode 100755 index 0000000..dc1ba5d --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_auth.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="auth" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "AUTH" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +${HCICONFIG} ${adapter} noauth +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_encrypt.sh b/ivi/tts-bluez-tests/src/hci_set_encrypt.sh new file mode 100755 index 0000000..95f6fce --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_encrypt.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="encrypt" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ENCRYPT" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " +fi + +${HCICONFIG} ${adapter} noencrypt +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_iscan.sh b/ivi/tts-bluez-tests/src/hci_set_iscan.sh new file mode 100755 index 0000000..5e9d2bd --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_iscan.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="iscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ISCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_noauth.sh b/ivi/tts-bluez-tests/src/hci_set_noauth.sh new file mode 100755 index 0000000..224aac1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noauth.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter=noauth +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "AUTH" ${tmp_file} +ret=$? + + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +rm -r ${tmp_file} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh b/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh new file mode 100755 index 0000000..ccabc78 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="noencrypt" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ENCRYPT" ${tmp_file} +ret=$? + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " +fi + +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_noscan.sh b/ivi/tts-bluez-tests/src/hci_set_noscan.sh new file mode 100755 index 0000000..988e253 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noscan.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="noscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONGIH} > ${tmp_file} +grep -w "PSCAN ISCAN" ${tmp_file} +ret=$? + + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +${HCICONFIG} ${adapter} piscan +rm -r ${tmp_file} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_piscan.sh b/ivi/tts-bluez-tests/src/hci_set_piscan.sh new file mode 100755 index 0000000..b99d3ce --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_piscan.sh @@ -0,0 +1,56 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="piscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "PSCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_pscan.sh b/ivi/tts-bluez-tests/src/hci_set_pscan.sh new file mode 100755 index 0000000..3a12915 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_pscan.sh @@ -0,0 +1,56 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="pscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "PSCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + + diff --git a/ivi/tts-bluez-tests/src/hci_tool_scan.sh b/ivi/tts-bluez-tests/src/hci_tool_scan.sh new file mode 100755 index 0000000..76e6a05 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_tool_scan.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +hcitool scan > ${tmp_file} +grep -v "Scanning..." ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] scaned device successfuly!" +else + echo "[FAIL] no device could be scaned!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/tests.xml b/ivi/tts-bluez-tests/tests.xml new file mode 100755 index 0000000..1072899 --- /dev/null +++ b/ivi/tts-bluez-tests/tests.xml @@ -0,0 +1,377 @@ + + + + + + + + + + ps -ef | grep bluetoothd +check if system runs bluetoothd daemon in beginning of booting up. + when system boots up, it should run bluetoothd daemon. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_daemon_bluetoothd.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 name + it should get BT device name + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_name.sh + + + IVI + + + + + + + + + rpm -qv obexd +Check if obexd rpm package is installed + system should install obexd package + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_obexd.sh + + + IVI + + + + + + + + + 1, Run command "hciconfig -a" to display all device information. (In auto case, it will call DBus API to get the name property of the adapter) +2. Find BT MAC address from the output of the command. + 1. Bluetooth MAC address should be output in pattern, for example, 00:22:69:FB:AA:8A + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_address.sh + + + IVI + + + + + + + + + 1. Call DBus API: SetProperty("Powered", <On or Off>) to power on/off the bluetooth adapter. +2. Call DBus API: GetProperties() to get the value of "Powered" property. 1 stands for On, and 0 stands for Off. + 1. The property value got from DBus call should be same with the value we set. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_power.sh + + + IVI + + + + + + + + + rpm -qv bluez +Check if the bluez rpm package is installed + System should install bluez package. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_bluez.sh + + + IVI + + + + + + + + + + 1. Call DBus API: SetProperty("Powered", <boolean value for On/Off>) to power on and power off the adapter for 50 times. +2. Check if the bluetooth device can be powered correctly during the stress process. + 1. For each execution during the 50 times, adapter power should be correctly On and Off. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_stress_power_50times.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 discoverabletimeout 1 + the hci0 discoverabletimeout could be set to 1 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_discoverabletimeout.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 pairable 0 + hci0 pairable could be set to 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_off.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 pairable 0 + hci0 pairable should be set to 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_on.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 discoverabletimeout + it should present discoverabletimeout info. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_discoverabletimeout.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 power + it should get hci0 power status + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_power.sh + + + IVI + + + + + + + hci command to set iscan mode + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh + + + IVI + + + + + hci command to set adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh + + + IVI + + + + + hci command to check adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh + + + IVI + + + + + hci command to set piscan mode + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh + + + IVI + + + + + hci command to check device informaton + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh + + + IVI + + + + + hcitool command to scan nearby bluetooth devices + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh + + + IVI + + + + + diff --git a/ivi/tts-connman-tests/ChangeLog b/ivi/tts-connman-tests/ChangeLog new file mode 100755 index 0000000..30e3009 --- /dev/null +++ b/ivi/tts-connman-tests/ChangeLog @@ -0,0 +1,27 @@ +ver 1.0.5: + Adjust test cases + +ver 1.0.4: + Add new test cases for ConnMan, including + + Tethering + + pacrunner + + TTLS EAP + + OpenVPN + + Data Transfer + +ver 1.0.3: + ConnMan 0.64 uses net.connman dbus interface. org.moblin.connman + is obsolete. Changed test cases accordingly + +ver 1.0.2: + Enhance test suites including: + + Remove Device interface + + Signal cases: Trigger signal in a thread + + Flight cases: Set manager online after testing done + + Fix bugs in test cases, for example, 7172, 7173 + + Other issues like enhance apset, IPv4 change, detect wifi security etc + + Put all manual and auto cases in tests.xml. + +ver 1.0.0: + Initial public release. + diff --git a/ivi/tts-connman-tests/README b/ivi/tts-connman-tests/README new file mode 100755 index 0000000..97f1810 --- /dev/null +++ b/ivi/tts-connman-tests/README @@ -0,0 +1,84 @@ + +--------------------- +Introduction +--------------------- +tts-connman-tests contains both manual and auto tests for ConnMan. +tests.xml describes both auto and manual tests. + +ConnMan is an open source project that provides a daemon for managing +internet connections within embedded devices running the Linux operating +system + +tts-connman-tests automatic test scripts are in the following source code +structure: +tts-connman-tests + data + apset.tgz: The script that used to set Cisco WiFi AP + pack.sh: The script that used to build package + tests.xml: ConnMan test cases definition, including both auto and manaul + README: This file + src + 3G: 3G test scripts + BT: Bluetooth test scripts + common: Common functions that used in test cases + Ethernet: Ethernet test scripts + WiFi: WiFi test scripts + Signal: Test ConnMan signal functionality + Profile: Test ConnMan profile object + Flight: Test ConnMan in flight on/off mode. + Property: Test property value in API +Following are structure after installation: +/usr/share/tests/common-connectivity-suite/tts-connman-tests/ + CM_*.py: All automatic test cases + common: Common functions that used in test cases + README: This file + : Helper scripts that used in sub test suites like WiFi + tests.xml: ConnMan test case definitions + +--------------------- +Testing environment +--------------------- ++ Test machine: This is the device/machine that we test ivi image, like VTC1010 or BFH. ++ Ethernet: Local ethernet ++ WiFi Guest: An open-no-security wireless AP with essid Guest. We use this network to test basic WiFi features by default. ++ WEP WIFI: A WEP encrypted wireless AP. We use it to test WEP encrypted cases ++ WPA2 WIFI: A WPA2 encrypted wireless AP. We use it to test WPA/WPA2 encrypted cases + +--------------------- +Install and Run +--------------------- ++ Modify below variables in tts-connman-tests/src/common/config.py to configure actual network information + cm_open_ap_essid: The open AP's ssid, the value type is a string, eg. cm_open_ap_essid = 'Guest' + cm_wep_ap: Wep encrypted AP's ssid and password, the value type is a hash which including 2 keys("name" and "password"), + cm_wpa2_ap: WPA/WPA2 encrypted AP's ssid and password, the value is a hash which including 2 keys("name" and "password"), + cm_available_ap: Available(could surf internet) AP's ssid and password, the value type is a hash which including 2 keys("name" and "password") + cm_ping_server_ip: The IP address that in the same network with test devices and AP + + ++ Install +rpm -ivh tts-connman-tests-0.1.0-1.i386.rpm --nodeps + ++ Test environment setup +Refer the section Test environment setup + ++ Run +Setup a open hidden WiFi AP with essid that you +Connect to a ethernet network so that "ping -b" local network has response +cd /usr/share/tests/common-connectivity-suite/tts-connman-tests/ +su - +export PYTHONPATH=$PYTHONPATH:/usr/share/tests/common-connectivity-suite/tts-connman-tests/common +testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-connman-tests/tests.xml --comm localhost -o ./results.xml +Please refer to the section Test Envrionment setup for what to test + +--------------------- +Known issues +--------------------- +1. Some test cases might fail in batch running, meanwhile pass when running + independently. We're still debuging these cases. + +Note: you can report the defects of this test suite to jeff.zheng@intel.com + +--------------------- +To Do +--------------------- +We will develop more test cases diff --git a/ivi/tts-connman-tests/bisect.sh b/ivi/tts-connman-tests/bisect.sh new file mode 100755 index 0000000..6ee5391 --- /dev/null +++ b/ivi/tts-connman-tests/bisect.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Usage: bisect +git bisect start +git bisect good $1 +git bisect bad master + +while [ 1 ]; do +make clean +pkill -9 connmand +./bootstrap-configure +make -j 9 || { echo make failed; git bisect reset; exit 1; } +src/connmand + +$2 + +if [ $? -eq 0 ]; then + git bisect good |head -n 1 |grep "bad" + if [ $? -eq 0 ]; then + git bisect reset + echo culprit commit found + exit 0 + fi +else + git bisect bad |head -n 1 |grep "bad" + if [ $? -eq 0 ]; then + git bisect reset + echo culprit commit found + exit 0 + fi +fi +done + diff --git a/ivi/tts-connman-tests/coverage.ods b/ivi/tts-connman-tests/coverage.ods new file mode 100755 index 0000000000000000000000000000000000000000..85ef8c0de0ba32faed2dd2632223c77ccb093d22 GIT binary patch literal 22578 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 VmdD09f9=}Yj}PmN5UhIs^dGD~(lr18 literal 0 HcmV?d00001 diff --git a/ivi/tts-connman-tests/data/apset.tgz b/ivi/tts-connman-tests/data/apset.tgz new file mode 100755 index 0000000000000000000000000000000000000000..676c7934ccbb2de10dd2bdd11a9059cf33cc3c8c GIT binary patch literal 5098 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 literal 0 HcmV?d00001 diff --git a/ivi/tts-connman-tests/network.jpg b/ivi/tts-connman-tests/network.jpg new file mode 100755 index 0000000000000000000000000000000000000000..0eae20895a654ad8f7a6f69217db37d80c2acd08 GIT binary patch literal 39926 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 +# +# Description: CM_3G_BigPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.Ping(1400)) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py b/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py new file mode 100755 index 0000000..d750a4c --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py b/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py new file mode 100755 index 0000000..9232806 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py b/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py new file mode 100755 index 0000000..9deff91 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import time + +dev = C3GDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(20) +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Download.py b/ivi/tts-connman-tests/src/3G/CM_3G_Download.py new file mode 100755 index 0000000..09c908c --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py b/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py new file mode 100755 index 0000000..b3220cd --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.PoweredOn() +time.sleep(5) +dev.Connect() +time.sleep(5) +svc = dev.GetService() +EXIT(svc.IsFixed()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py b/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py new file mode 100755 index 0000000..f3634dc --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +print dev +dev.Connect() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py new file mode 100755 index 0000000..eb2e767 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +if svc.Ping() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py new file mode 100755 index 0000000..0034ef6 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = C3GDevice() +dev.Connect() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +if svc.Ping() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py new file mode 100755 index 0000000..4b94b10 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py new file mode 100755 index 0000000..f1c34f2 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py new file mode 100755 index 0000000..b615750 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +svc = dev.GetService() +svc.Connect() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py new file mode 100755 index 0000000..88b54b8 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py new file mode 100755 index 0000000..39023f2 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py new file mode 100755 index 0000000..b32e45a --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py b/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py new file mode 100755 index 0000000..7e04d45 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_SmallPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.Ping(64)) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py b/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py new file mode 100755 index 0000000..50c4b86 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/3G/cleanup b/ivi/tts-connman-tests/src/3G/cleanup new file mode 100755 index 0000000..4e8ee45 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/cleanup @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/3G/startup b/ivi/tts-connman-tests/src/3G/startup new file mode 100755 index 0000000..b919507 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + +#manager.Cleanup() +manager.Startup3G() diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py new file mode 100755 index 0000000..5cd4586 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +ret=dev.IsConnected() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py new file mode 100755 index 0000000..94af67b --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#manager.Startup3G() +dev = C3GDevice() +if dev.device == None: + print "No 3G Device!" + #manager.Cleanup() + EXIT(False) +dev.Connect() +if dev.IsConnected() == False: + print 'The 3G service is not connected' + #manager.Cleanup() + EXIT(False) +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) +ret=(dev.IsConnected() == False) +#manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py new file mode 100755 index 0000000..853eaf6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not connected!" + manager.Cleanup() + EXIT(False) +ret=dev.Download() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py new file mode 100755 index 0000000..853eaf6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not connected!" + manager.Cleanup() + EXIT(False) +ret=dev.Download() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py new file mode 100755 index 0000000..e505713 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py new file mode 100755 index 0000000..3ea61c9 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The BT is not connected' + EXIT(False) +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py new file mode 100755 index 0000000..fe7efd3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py new file mode 100755 index 0000000..ee162d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py new file mode 100755 index 0000000..3bc1e6b --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key) +if dev.IsConnected(): + dev.Disconnect() +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py new file mode 100755 index 0000000..778d5b6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key) +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py new file mode 100755 index 0000000..bb86895 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +if dev.IsConnected(): + dev.Disconnect() +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py new file mode 100755 index 0000000..a7afbba --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py new file mode 100755 index 0000000..25a0b9d --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py new file mode 100755 index 0000000..cc7cd8e --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +EXIT(ret[0] == 0) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py new file mode 100755 index 0000000..55197f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py b/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py new file mode 100755 index 0000000..d5243d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_BigPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py b/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py new file mode 100755 index 0000000..ef95ee7 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py b/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py new file mode 100755 index 0000000..f0e4abd --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py b/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py new file mode 100755 index 0000000..c8992fa --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import time + +dev = BTDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(20) +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Download.py b/ivi/tts-connman-tests/src/BT/CM_BT_Download.py new file mode 100755 index 0000000..e011067 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py b/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py new file mode 100755 index 0000000..c65bfe7 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py b/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py new file mode 100755 index 0000000..cf5ac39 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +print dev +dev.Connect() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py new file mode 100755 index 0000000..5460728 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py new file mode 100755 index 0000000..3561c41 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = BTDevice() +dev.Connect() +ret = dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py new file mode 100755 index 0000000..a85f50f --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py new file mode 100755 index 0000000..793a898 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py new file mode 100755 index 0000000..54b16c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +svc = dev.GetService() +svc.Connect() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py new file mode 100755 index 0000000..4e1c138 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py new file mode 100755 index 0000000..b2ee1bd --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py new file mode 100755 index 0000000..497ce79 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py b/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py new file mode 100755 index 0000000..ef2d639 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_SmallPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py b/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py new file mode 100755 index 0000000..1e9a40f --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py b/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py new file mode 100755 index 0000000..3e598e4 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py @@ -0,0 +1,108 @@ +#!/usr/bin/python + +import gobject + +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +class Rejected(dbus.DBusException): + _dbus_error_name = "org.bluez.Error.Rejected" + +class Agent(dbus.service.Object): + exit_on_release = True + + def set_exit_on_release(self, exit_on_release): + self.exit_on_release = exit_on_release + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Release(self): + print "Release" + if self.exit_on_release: + mainloop.quit() + + @dbus.service.method("org.bluez.Agent", + in_signature="os", out_signature="") + def Authorize(self, device, uuid): + print "Authorize (%s, %s)" % (device, uuid) + return + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="s") + def RequestPinCode(self, device): + print "RequestPinCode (%s)" % (device) + return "0000" + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="u") + def RequestPasskey(self, device): + print "RequestPasskey (%s)" % (device) + passkey = "0000" + return dbus.UInt32(passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def DisplayPasskey(self, device, passkey): + print "DisplayPasskey (%s, %d)" % (device, passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def RequestConfirmation(self, device, passkey): + print "RequestConfirmation (%s, %d)" % (device, passkey) + return + + @dbus.service.method("org.bluez.Agent", + in_signature="s", out_signature="") + def ConfirmModeChange(self, mode): + print "ConfirmModeChange (%s)" % (mode) + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Cancel(self): + print "Cancel" + +def create_device_reply(device): + print "New device (%s)" % (device) + mainloop.quit() + +def create_device_error(error): + print "Creating device failed: %s" % (error) + mainloop.quit() + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + manager = dbus.Interface(bus.get_object("org.bluez", "/"), + "org.bluez.Manager") + + if len(sys.argv) > 1: + path = manager.FindAdapter(sys.argv[1]) + else: + path = manager.DefaultAdapter() + + adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = gobject.MainLoop() + + if len(sys.argv) > 2: + if len(sys.argv) > 3: + device = adapter.FindDevice(sys.argv[2]) + adapter.RemoveDevice(device) + + agent.set_exit_on_release(False) + adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo", + reply_handler=create_device_reply, + error_handler=create_device_error) + else: + adapter.RegisterAgent(path, "DisplayYesNo") + print "Agent registered %s" %(sys.argv[1]) + + mainloop.run() + diff --git a/ivi/tts-connman-tests/src/BT/cleanup b/ivi/tts-connman-tests/src/BT/cleanup new file mode 100755 index 0000000..cd01845 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/cleanup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/BT/startup b/ivi/tts-connman-tests/src/BT/startup new file mode 100755 index 0000000..f1642e0 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupBT() diff --git a/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp b/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp new file mode 100755 index 0000000..617657f --- /dev/null +++ b/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp @@ -0,0 +1,108 @@ +/* +# Copyright (C) 2010, Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation; either version 2 of the License, +# or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# Authors: +# Jeff Zheng +*/ +#include +#include +#include + +class Bearer: public QObject +{ + Q_OBJECT +private slots: + void Scan(); + void Connect(); + void Disconnect(); + void Test(); +}; + +void Bearer::Test() +{ + qDebug() << "The second case : Test"; + QVERIFY(1 == 2); +} + +void Bearer::Scan() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); +} + +void Bearer::Connect() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); + session = new QNetworkSession(cfg, this); + session->open(); + session->waitForOpened(-1); +} + +void Bearer::Disconnect() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); + session = new QNetworkSession(cfg, this); + session->disconnect(); + session->stop(); + session->close(); +// session->waitForClosed(-1); +} + +QTEST_MAIN(Bearer) +#include "bearer.moc" diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py new file mode 100755 index 0000000..a1e027e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_BigBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py new file mode 100755 index 0000000..058269e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +dev = EthDevice() +time.sleep(3) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py new file mode 100755 index 0000000..b4f15ae --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsExist()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py new file mode 100755 index 0000000..928b041 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +dev = EthDevice() +time.sleep(3) +if dev.IsConnected() == False: + print 'The Wifi is not connected' + Exit(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(3) +if dev.IsConnected() == True: + EXIT(False) +svc.Connect() +time.sleep(10) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py new file mode 100755 index 0000000..b608dbf --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py new file mode 100755 index 0000000..43ba7bb --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py new file mode 100755 index 0000000..8c8b7e2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py new file mode 100755 index 0000000..2adc3aa --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = EthDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = EthDevice() +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +if properties['State'] == 'available': + EXIT(False) +dev.ifconfigUP() +time.sleep(5) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py new file mode 100755 index 0000000..23951cf --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = EthDevice() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(10) +dev = EthDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py new file mode 100755 index 0000000..ddb62f6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py new file mode 100755 index 0000000..fb4bff2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py new file mode 100755 index 0000000..88be67e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py new file mode 100755 index 0000000..e98e5c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py new file mode 100755 index 0000000..e475962 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py new file mode 100755 index 0000000..364a600 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +time.sleep(10) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py new file mode 100755 index 0000000..838bbcb --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_SmallBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py new file mode 100755 index 0000000..9da3896 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/startup b/ivi/tts-connman-tests/src/Ethernet/startup new file mode 100755 index 0000000..c215490 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupEthernet() diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py new file mode 100755 index 0000000..8fa8611 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthIsPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +# Assume we're in offline mode + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +ret=dev.IsPoweredOff() +if ret: + print 'Default powered is off in offline mode' +else: + print 'Powered is on in offline mode' +manager.Online() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py new file mode 100755 index 0000000..b96a9c6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthNoPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +time.sleep(3) +manager.Offline() +time.sleep(3) +svc = dev.GetService() +ret = svc != None and svc.BroadcastPing() +if ret: + print 'Can ping in offline mode' +manager.Online() +EXIT(not ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py new file mode 100755 index 0000000..a4cccce --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthOnline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +eth = EthDevice() +ASSERT(eth.IsExist(), "No device found", manager.Online) +time.sleep(3) +manager.Offline() +time.sleep(3) +eth.PoweredOn() +time.sleep(10) +svc = eth.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py new file mode 100755 index 0000000..8c66f86 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +time.sleep(3) +dev.PoweredOff() +time.sleep(2) +ret=dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py new file mode 100755 index 0000000..28b0932 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +time.sleep(10) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py new file mode 100755 index 0000000..d2b2a6b --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Offline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +print 'Set to offline mode...' +manager.Offline() +time.sleep(10) +state = manager.GetOfflineMode() +ret = state == True +print 'Manager OfflineMode is %s' % state +manager.Online() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py new file mode 100755 index 0000000..f914e7e --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Online +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +print 'Set to Online mode...' +manager.Online() +time.sleep(3) +state = manager.GetOfflineMode() +ret = state == False +print 'Manager OfflineMode is %s' % state +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py new file mode 100755 index 0000000..5ef87df --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Service +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +manager.Offline() +time.sleep(3) +service = manager.GetServices() +print service +if not service: + print 'There is no service in an new offline mode' +else: + print 'Service is not empty in offline mode, do you powered on a device?' +manager.Online() +EXIT(not service) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py new file mode 100755 index 0000000..2ce3a95 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiGuest +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +dev.PoweredOn() +dev.Connect(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py new file mode 100755 index 0000000..61a6964 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiIsPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) + +ret = dev.IsPoweredOff() +if ret: + print 'Default powered is off in offline mode' +else: + print 'Powered is on in offline mode' +manager.Online +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py new file mode 100755 index 0000000..f3ba7fc --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiNoPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +svc = dev.GetService() +ret = svc != None and svc.BroadcastPing() +if ret: + print 'Can ping in offline mode' +manager.Online +EXIT(not ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py new file mode 100755 index 0000000..b2be7ba --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiOnline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +dev.Connect(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py new file mode 100755 index 0000000..a8252f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +dev.PoweredOff() +time.sleep(3) +ret = dev.IsPoweredOff() +manager.Online() +time.sleep(1) +dev.PoweredOn() +time.sleep(1) +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py new file mode 100755 index 0000000..51ac918 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +time.sleep(3) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Flight/cleanup b/ivi/tts-connman-tests/src/Flight/cleanup new file mode 100755 index 0000000..0caa523 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/cleanup @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Flight/Cleanup + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Startup diff --git a/ivi/tts-connman-tests/src/Flight/startup b/ivi/tts-connman-tests/src/Flight/startup new file mode 100755 index 0000000..c058aaf --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py new file mode 100755 index 0000000..f1b2385 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_BT + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('bluetoothd')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py new file mode 100755 index 0000000..1e79e27 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Boot +# +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('connmand')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py new file mode 100755 index 0000000..d268ee5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_OneConnmand + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import commands + +daemon = 'connmand' + +if IsDaemonExist(daemon): + ret = commands.getstatusoutput(daemon) + if ret[0] == 0: + EXIT(OneDaemonExist(daemon)) + else: + print "Error occurs when exectuing connmand command" +else: + EXIT(False) + \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py new file mode 100755 index 0000000..53200a3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_State_Bluetooth +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + + +dev = Device('Bluetooth', 1, False) +EXIT(dev.IsDisabled()) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py new file mode 100755 index 0000000..4ccd794 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Ethernet + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = Device('Wired', 1, False) +EXIT(dev.IsEnabled()) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py new file mode 100755 index 0000000..232642a --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Offlinemode + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.GetOfflineMode()== False) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py new file mode 100755 index 0000000..a8e493a --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_State_WIFI + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = Device('WiFi', 1, False) +EXIT(dev.IsDisabled()) + + + + diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py new file mode 100755 index 0000000..e8510f5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_WpaSupplicant + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('wpa_supplican')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf b/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf new file mode 100755 index 0000000..e0fd3b6 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf @@ -0,0 +1,8 @@ +model = "aal_remote:remote_pyaal -l model.log 'connman-basic.aal'" +adapter = "remote:remote_python -l teststeps.log -c 'from teststeps import *' -c addWifi\(\'Guest\'\)" +heuristic = "lookahead:2" +coverage = "perm:2" +pass = "duration:20 minutes" +on_pass = "exit:0" +on_fail = "exit:1" +on_inconc = "exit:2" diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal b/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal new file mode 100755 index 0000000..08f082d --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal @@ -0,0 +1,127 @@ +aal "connman_basic" { + + language: python { + # language "Python" here means that contents of following code blocks + # will contain Python statements. + } + + # The following preview-* settings are understood by fmbt-gteditor. + # They allow hiding or showing variables in visualised model. This helps + # looking at the model in different perspectives. + # + # Try leaving "powered" out to see which test steps should change the + # "connected" value. + # + # preview-show-vars: powered, connected + # preview-depth: 10 + + # The variables block contains a comma-separated list of variables that + # are visible to all code blocks (like initial_state, guard and body). + variables { + technologies, powered, connected, scanned + } + + initial_state { + # The initial_state block sets initial values to the variables + + # Technologies to be tested. This won't be during the test. + # Use any combination of "wifi", "bluetooth", "ethernet". + technologies = set(["wifi"]) + + # Technologies powered up by test steps. + powered = set(["wifi"]) + + # Technologies that have connected services. + connected = set([]) + scanned = False + } + + action "iConnect('wifi')" { + # In this test configuration each action is a Python expression. + # Expressions are evaluated by the remote_python adapter, in a namespace + # where teststeps.py contents have been imported (see connman-basic.conf). + + # The test generator chooses to execute only those actions where guard() + # returns True. + guard() { + return ("wifi" in powered) and (not "wifi" in connected) and scanned + } + + # If an action has been executed successfully by the adapter, + # test generator executes its body(). + # Execution of this body block enables execution of "iDisconnect('wifi')". + # The test generator may execute body blocks to simulate which test steps + # it could execute after them, too. + body() { + connected.add("wifi") + } + } + + action "iDisconnect('wifi')" { + guard() { + return "wifi" in connected + } + body() { + connected.remove("wifi") + } + } + + # An action block can define several actions at once. + # This is convenient if guard() and body() blocks of actions would be + # very similar. + action "iScan('wifi')", "iScan('bluetooth')" { + guard() { + # action_name variable contains a string, either + # "iScan('wifi')" or "iScan('bluetooth')" in this case. + # This extracts the technology from it: + techname = action_name.split("'")[1] + + # This action can be executed if the + # technology name appears in the "powered" set. + return techname in powered + } + body() { scanned = True } + } + + action "iPowerUp('wifi')", "iPowerUp('bluetooth')", "iPowerUp('ethernet')" { + guard() { + techname = action_name.split("'")[1] + return (techname in technologies) and (not techname in powered) + } + body() { + techname = action_name.split("'")[1] + if not techname in powered: + powered.add(techname) + } + } + + action "iPowerDown('wifi')", "iPowerDown('bluetooth')", "iPowerDown('ethernet')" { + guard() { + techname = action_name.split("'")[1] + return techname in powered + } + body() { + techname = action_name.split("'")[1] + if techname in powered: + powered.remove(techname) + if techname in connected: + connected.remove(techname) + scanned = False + } + } + + # Action "iConnected('wifi') == True" requires that the iConnected function + # in teststeps.py will return True in this case. If requirement for the + # return value is not given (as in above actions), the return value is + # ignored. + # Executing an action is not allowed to raise an exception unless + # it is required. For instance, iConnected('xyz') == Error('.*InvalidArgument.*'). + action "iConnected('wifi') == True" { + guard() { return "wifi" in connected } + } + + action "iConnected('wifi') == False" { + guard() { return not "wifi" in connected } + } +} + diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf b/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf new file mode 100755 index 0000000..8d69a24 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf @@ -0,0 +1,8 @@ +model = "aal_remote:remote_pyaal -l model.log 'connman-basic.aal'" +adapter = "remote:remote_python -l teststeps.log -c 'from teststeps import *' -c addWifi\(\'Guest\'\)" +heuristic = "lookahead:2" +coverage = "perm:2" +pass = "no_progress:2" +on_pass = "exit:0" +on_fail = "exit:1" +on_inconc = "exit:2" \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/MBT/teststeps.py b/ivi/tts-connman-tests/src/MBT/teststeps.py new file mode 100755 index 0000000..a07b965 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/teststeps.py @@ -0,0 +1,112 @@ +""" +This library implements test steps for ConnMan models. +""" + +import dbus +import fmbt +import time + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("net.connman", "/"), + "net.connman.Manager") + +known_wifis = set([]) + +known_bluetooth = set([]) + +# connected_services is a map: +# technology_name -> service_path +# that contain latest connected technologies and services +connected_services = {} + +g_last_powerup = time.time() + +def addWifi(wifi_name): + global known_wifis + known_wifis.add(wifi_name) + +def addBt(bt_name): + global known_bluetooth + knwn_bluetooth.add(bt_name) + +def iPowerUp(techname): + global g_last_powerup + RETRY_LIMIT = 5 + tech = dbus.Interface(bus.get_object("net.connman", "/net/connman/technology/" + techname), + "net.connman.Technology") + counter = 0 + while 1: + try: + tech.SetProperty("Powered", True) + break # if no exceptions + except Exception, e: + fmbt.adapterlog("Got exception: %s" % (e,)) + if not ("InvalidArguments" in str(e) or "InvalidProperty" in str(e)): + fmbt.adapterlog("BUG: undocumented exception") + counter += 1 + time.sleep(1) + assert counter < RETRY_LIMIT, "Maximum number of retries" + time.sleep(3) + fmbt.adapterlog("tech.GetProperties()['Powered'] = %s" % (tech.GetProperties()["Powered"],)) + assert tech.GetProperties()["Powered"], "Powered == False according to properties" + g_last_powerup = time.time() + +def iPowerDown(techname): + tech = dbus.Interface(bus.get_object("net.connman", + "/net/connman/technology/" + techname), + "net.connman.Technology") + tech.SetProperty("Powered", False) + +def iScan(techname): + tech = dbus.Interface(bus.get_object("net.connman", + "/net/connman/technology/" + techname), + "net.connman.Technology") + if g_last_powerup + 5 > time.time(): + time.sleep(g_last_powerup + 5 - time.time()) + tech.Scan() + +def iConnect(techname): + RETRY_LIMIT = 5 + if techname == "wifi": + can_connect = known_wifis + elif techname == "bluetooth": + can_connect = known_bluetooth + else: + fmbt.adapterlog("Don't know which services to connect via tech %s." % (techname,)) + + # Look for a suitable service (one of known_*) + connect_me = None + counter = 0 + while 1: + found_services = manager.GetServices() + for service_path, properties in found_services: + fmbt.adapterlog(" GetServices(): %s (%s)" % (service_path, properties["Name"])) + if str(service_path).split("/")[-1].startswith(techname) and properties["Name"] in can_connect: + connect_me = service_path + break + if connect_me != None: + break + counter += 1 + assert counter < RETRY_LIMIT, "Maximum number of retries" + fmbt.adapterlog("Known services not found, retrying after 2 second...") + time.sleep(2) + + # Connect to the found service + fmbt.adapterlog('Connecting to service "%s"' % (properties["Name"],)) + service = dbus.Interface(bus.get_object("net.connman", service_path), + "net.connman.Service") + service.Connect(timeout=5000) + connected_services[techname] = service_path + +def iDisconnect(techname): + if techname in connected_services: + service = dbus.Interface(bus.get_object("net.connman", connected_services[techname]), + "net.connman.Service") + service.Disconnect() + +def iConnected(techname): + for service_path, properties in manager.GetServices(): + if properties["Type"] == techname and properties["State"] in ["ready", "online"]: + return True + return False diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py new file mode 100755 index 0000000..176a176 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + manager.SetProperty('ActiveProfile', path) + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.NotSupported': + print 'This feature is not supported now, please wait...' + EXIT(False) + else: + print e + EXIT(False) + print 'Set ActiveProfile property without error' + properties = manager.GetProperties() + print 'ActiveProfile property value is %s' \ + % properties['ActiveProfile'] + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py new file mode 100755 index 0000000..d09929b --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Add +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py new file mode 100755 index 0000000..b6235cb --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_AddExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + profile = manager.CreateProfile('TestProfile') + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyExists': + print 'Create exist profile trigger error AlreadyExists!' + EXIT(True) + else: + print e + EXIT(False) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py new file mode 100755 index 0000000..f3d95f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_List +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py new file mode 100755 index 0000000..90c8fa8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Remove +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +properties = manager.GetProperties() + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'profile TestProfile removed!' +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py new file mode 100755 index 0000000..9813152 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_RemoveNoExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'Remove no exist profile TestProfile' +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + if e._dbus_error_name == 'net.connman.Error.NotFound': + print 'Remove none exist profile trigger error NotFound' + EXIT(True) + else: + print e + EXIT(True) +print 'No error happens when remove none exist profile' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py b/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py new file mode 100755 index 0000000..d9664cd --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['/profile/default'] +EXIT(InListManager('ActiveProfile', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py new file mode 100755 index 0000000..97ea265 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_AvailableTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManagerM('AvailableTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py new file mode 100755 index 0000000..4b6634f --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'wimax', 'cellular'] +EXIT(InListManagerM('ConnectedTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py b/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py new file mode 100755 index 0000000..e49cad2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManager('DefaultTechnology', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py new file mode 100755 index 0000000..1c62bd4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManagerM('EnabledTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py b/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py new file mode 100755 index 0000000..96790f8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListManager('OfflineMode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py b/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py new file mode 100755 index 0000000..6bb7d7a --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_Profiles +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO Only default? + +value_list = ['/profile/default', '/profile/TestProfile'] +EXIT(InListManagerM('Profiles', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py b/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py new file mode 100755 index 0000000..12d79fc --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListManager('SessionMode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_State.py b/ivi/tts-connman-tests/src/Property/CM_PM_State.py new file mode 100755 index 0000000..0a7a7fa --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_State.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['online', 'offline', 'connected', 'idle', 'ready'] +EXIT(InListManager('State', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py new file mode 100755 index 0000000..16343f0 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_Technologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['/net/connman/technology/ethernet', + '/net/connman/technology/wifi', + '/net/connman/technology/bluetooth', + '/net/connman/technology/3g', + '/net/connman/technology/wimax', + '/net/connman/technology/gps', + '/net/connman/technology/gadget', + '/net/connman/technology/cellular'] +EXIT(InListManagerM('Technologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_APN.py b/ivi/tts-connman-tests/src/Property/CM_PS_APN.py new file mode 100755 index 0000000..a69302c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_APN.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_APN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = ['3gwap'] +EXIT(InList3G('APN', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py b/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py new file mode 100755 index 0000000..39c76ac --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_AutoConnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('AutoConnect', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py b/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py new file mode 100755 index 0000000..589aca2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Domains +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# Name servers is not empty + +value_list = [''] +EXIT(not InListWiFiGuest('Domains', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Error.py b/ivi/tts-connman-tests/src/Property/CM_PS_Error.py new file mode 100755 index 0000000..4655231 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Error.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Error +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [''] + +# There should be no Error property, since Guest always success + +EXIT(InListWiFiGuest('Error', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py b/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py new file mode 100755 index 0000000..3976fe4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('Favorite', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py b/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py new file mode 100755 index 0000000..c1ac207 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Immutable +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('Immutable', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py b/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py new file mode 100755 index 0000000..015ee25 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_MCC +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = [''] +EXIT(InList3G('MCC', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py b/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py new file mode 100755 index 0000000..fecceff --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_MNC +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = [''] +EXIT(InList3G('MNC', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py b/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py new file mode 100755 index 0000000..ec3c17a --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Mode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['managed'] +EXIT(InListWiFiGuest('Mode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py b/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py new file mode 100755 index 0000000..27f6702 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Passphrase +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# Guest Passphrase is empty + +value_list = [''] +EXIT(InListWiFiGuest('Passphrase', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py b/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py new file mode 100755 index 0000000..963ab9e --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_PassphraseRequired +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('PassphraseRequired', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Security.py b/ivi/tts-connman-tests/src/Property/CM_PS_Security.py new file mode 100755 index 0000000..3a3e8c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Security.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Security +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [ + 'none', + 'wep', + 'psk', + 'ieee8021x', + 'wpa', + 'rsn', + ] + +dev = WiFiGuestDevice() +svc = dev.GetService() +properties = svc.GetProperties() +key='Security' +items = properties[key] +for item in items: + if item in value_list: + print '%s %s is valid' % (key, item) + EXIT(True) + else: + print '%s %s is invalid' % (key, item) + EXIT(False) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py b/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py new file mode 100755 index 0000000..a6a8f98 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_SetupRequired +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InList3G('SetupRequired', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_State.py b/ivi/tts-connman-tests/src/Property/CM_PS_State.py new file mode 100755 index 0000000..c9df2cf --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_State.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [ + 'ready', + 'idle', + 'failure', + 'association', + 'configuration', + 'login', + 'online', + ] +EXIT(InListWiFiGuest('State', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py b/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py new file mode 100755 index 0000000..c047b00 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +dev = WiFiGuestDevice() +#svc = dev.GetService() +#time.sleep(5) +#svc.Disconnect() +#time.sleep(5) +manager.RequestScan('wifi') +time.sleep(5) +value_list = range(101) +EXIT(InListWiFiGuest('Strength', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Type.py b/ivi/tts-connman-tests/src/Property/CM_PS_Type.py new file mode 100755 index 0000000..3d1071d --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Type.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['wifi'] +EXIT(InListWiFiGuest('Type', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py b/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py new file mode 100755 index 0000000..7b3ef7c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Connected', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py b/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py new file mode 100755 index 0000000..0bae9d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Powered', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py b/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py new file mode 100755 index 0000000..1eb052c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Tethering', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Type.py b/ivi/tts-connman-tests/src/Property/CM_PT_Type.py new file mode 100755 index 0000000..df8eeba --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Type.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular'] +EXIT(InListTechnology('Type', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py b/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py new file mode 100755 index 0000000..176a176 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + manager.SetProperty('ActiveProfile', path) + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.NotSupported': + print 'This feature is not supported now, please wait...' + EXIT(False) + else: + print e + EXIT(False) + print 'Set ActiveProfile property without error' + properties = manager.GetProperties() + print 'ActiveProfile property value is %s' \ + % properties['ActiveProfile'] + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py b/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py new file mode 100755 index 0000000..d09929b --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Add +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py b/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py new file mode 100755 index 0000000..b6235cb --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_AddExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + profile = manager.CreateProfile('TestProfile') + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyExists': + print 'Create exist profile trigger error AlreadyExists!' + EXIT(True) + else: + print e + EXIT(False) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_List.py b/ivi/tts-connman-tests/src/Property/CM_Prof_List.py new file mode 100755 index 0000000..f3d95f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_List.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_List +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py b/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py new file mode 100755 index 0000000..90c8fa8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Remove +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +properties = manager.GetProperties() + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'profile TestProfile removed!' +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py b/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py new file mode 100755 index 0000000..9813152 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_RemoveNoExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'Remove no exist profile TestProfile' +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + if e._dbus_error_name == 'net.connman.Error.NotFound': + print 'Remove none exist profile trigger error NotFound' + EXIT(True) + else: + print e + EXIT(True) +print 'No error happens when remove none exist profile' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/startup b/ivi/tts-connman-tests/src/Property/startup new file mode 100755 index 0000000..6a1f09f --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py new file mode 100755 index 0000000..5cca33f --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Connected +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('Connected') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py new file mode 100755 index 0000000..1a687e7 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('ConnectedTechnologies') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py b/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py new file mode 100755 index 0000000..ef98875 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('DefaultTechnology') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py new file mode 100755 index 0000000..8711cfc --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1))) + time.sleep(1) + svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Domains Domains.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py new file mode 100755 index 0000000..4684fec --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('EnabledTechnologies') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py new file mode 100755 index 0000000..9ff7eba --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(10) + svc = dev.GetService() + properties = svc.GetProperties() + print 'Favorite = %s' % properties['Favorite'] + svc.Remove() + + +sig = SignalConnman.sig +sig.property_name = 'Favorite' + +common.manager.RequestScan('wifi') +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py b/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py new file mode 100755 index 0000000..10e5ff6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +from common import * +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + #updated by JH + manager.RequestScan('wifi') + time.sleep(2) + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("dhcp", variant_level=1)}) + +sig = SignalConnman.sig +sig.property_name = 'IPv4 IPv4.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py new file mode 100755 index 0000000..dafba77 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Networks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('Networks') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py b/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py new file mode 100755 index 0000000..3199541 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('OfflineMode') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py new file mode 100755 index 0000000..256e7c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py new file mode 100755 index 0000000..9b9714c --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("direct", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("auto", variant_level=1)}) + +sig = SignalConnman.sig +sig.property_name = 'Proxy Proxy.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py b/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py new file mode 100755 index 0000000..6540a49 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_ScanInterval +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + dev = common.WiFiDevice() + properties = dev.GetProperties() + value = properties['ScanInterval'] + dev.device.SetProperty('ScanInterval', dbus.UInt16(value + 50)) + time.sleep(3) + dev.device.SetProperty('ScanInterval', dbus.UInt16(value)) + +sig = SignalConnman.sig +sig.property_name = 'ScanInterval' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py new file mode 100755 index 0000000..4fd0d81 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Scanning +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + time.sleep(2) + common.manager.manager.RequestScan('wifi') + +sig = SignalConnman.sig +sig.property_name = 'Scanning' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py new file mode 100755 index 0000000..154f8dc --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Services +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('Services') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_State.py b/ivi/tts-connman-tests/src/Signal/CM_SC_State.py new file mode 100755 index 0000000..113472e --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_State.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('State') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py new file mode 100755 index 0000000..256e7c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py new file mode 100755 index 0000000..66652a8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(2) + print 'Disabling...' + dev.Disable() + time.sleep(2) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'ConnectedTechnologies' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py b/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py new file mode 100755 index 0000000..0077138 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(20) + print 'Disabling...' + dev.Disable() + time.sleep(3) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'DefaultTechnology' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py new file mode 100755 index 0000000..b7c9c40 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + dev.Disable() + time.sleep(2) + dev.Enable() + +sig = SignalManager.sig +sig.property_name = 'EnabledTechnologies' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py new file mode 100755 index 0000000..3abe546 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Profiles +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + manager = dev.manager.manager + properties = manager.GetProperties() + default = properties['ActiveProfile'] + print 'default profile is %s' % default + profile = manager.CreateProfile('Test1') + print 'created profile %s' % profile + manager.RemoveProfile(profile) + + +sig = SignalManager.sig +sig.property_name = 'Profiles' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py new file mode 100755 index 0000000..101255a --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Services +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + dev.Disable() + time.sleep(2) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'Services' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_State.py b/ivi/tts-connman-tests/src/Signal/CM_SM_State.py new file mode 100755 index 0000000..34cc3b9 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_State.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +from common import * + +def func(): + manager.Offline() + time.sleep(2) + manager.Online() + + +sig = SignalManager.sig +sig.property_name = 'State' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(TIMEOUT) + +sig.mainloop.run() +EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py new file mode 100755 index 0000000..044e774 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + time.sleep(2) + common.manager.manager.RequestScan('wifi') + + +sig = SignalService.sig +sig.property_name = 'Strength' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py b/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py new file mode 100755 index 0000000..196bbee --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_AutoConnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(2) + service = dev.GetService() + service.SetProperty('AutoConnect', True) + time.sleep(2) + service.SetProperty('AutoConnect', False) + + +sig = SignalService.sig +sig.property_name = 'AutoConnect' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py new file mode 100755 index 0000000..ef9f9b2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1))) + time.sleep(1) + svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalService.sig +sig.property_name = 'Domains Domains.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py new file mode 100755 index 0000000..720eb3b --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(20) + svc = dev.GetService() + properties = svc.GetProperties() + print 'Favorite = %s' % properties['Favorite'] + svc.Remove() + + +sig = SignalService.sig +sig.property_name = 'Favorite' + +common.manager.RequestScan('wifi') +trigger=SignalBase.Trigger(func) +trigger.daemon = True +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py b/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py new file mode 100755 index 0000000..a4524d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + svc = dev.GetService() +# svc.svc.SetProperty("IPv4.Configuration", +# { "Method": "manual", "Address": "192.168.1.111"}) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)}) + time.sleep(1) +# svc.svc.SetProperty("IPv4.Configuration", +# { "Method": "dhcp"}) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("dhcp", variant_level=1)}) + dev = common.WiFiGuestDevice() + +sig = SignalService.sig +sig.property_name = 'IPv4 IPv4.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py new file mode 100755 index 0000000..43b0523 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Passphrase +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + service = dev.GetService() + service.SetProperty('Passphrase', '1111000000') + + +sig = SignalService.sig +sig.property_name = 'PassphraseRequired' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py new file mode 100755 index 0000000..b6e33ea --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("direct", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("auto", variant_level=1)}) + +sig = SignalService.sig +sig.property_name = 'Proxy Proxy.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py new file mode 100755 index 0000000..20fe3db --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalService.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py b/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py new file mode 100755 index 0000000..86aaa4e --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalTechnology +import common +#import offline + +def func(): + + dev = common.WiFiDevice() + dev.Disable() + time.sleep(3) + dev.Enable() + +sig = SignalTechnology.sig +sig.property_name = 'Powered' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/startup b/ivi/tts-connman-tests/src/Signal/startup new file mode 100755 index 0000000..c058aaf --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py b/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py new file mode 100755 index 0000000..f02c056 --- /dev/null +++ b/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Created By JH +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_available_ap["name"], cm_available_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_available_ap["name"]) +finally: + proc.kill() +EXIT(dev.IsConnected()) + +sev = dev.GetService() +EXIT(svc.GetProperty("State") == "online") diff --git a/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py b/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py new file mode 100755 index 0000000..0164499 --- /dev/null +++ b/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Created By JH +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_isolate_ap["name"], cm_isolate_ap["password"]), shell=True) +dev = WiFiDevice() +try: + dev.Connect(cm_isolate_ap["name"]) +finally: + proc.kill() +EXIT(dev.IsConnected()) + +sev = dev.GetService() +EXIT(svc.GetProperty("State") == "ready") diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py new file mode 100755 index 0000000..74dabd8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_BT +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + +wifidev = WiFiDevice() +if not wifidev : + print "No WiFi device, case fails" + EXIT(False) +wifidev.Enable() +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) +dev = BTDevice() + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "Enable device" + dev.Enable() + time.sleep(10) + dev.Connect() + if dev.IsConnected(): + print "Bluetooth is connected" + else: + print "Bluetooth is not connected, test fails" + EXIT(FALSE) + time.sleep(40) + print "Diable device" + dev.Disable() + time.sleep(10) + if dev.IsConnected(): + print "Bluetooth is still connected, test fails" + EXIT(FALSE) + else: + print "Bluetooth is not connected" + time.sleep(40) + count += 1 + +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py new file mode 100755 index 0000000..77788d5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py @@ -0,0 +1,78 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_Flight +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + +btdev = BTDevice() +if not btdev : + print "No Bluetooth device, case fails" + EXIT(False) +btdev.Enable() +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +wifidev = WiFiDevice() +if not wifidev : + print "No WiFi device, case fails" + EXIT(False) +wifidev.Enable() +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "offline on" + manager.Offline() + time.sleep(10) + print "offline off" + manager.Online() + time.sleep(10) + count += 1 + +print "Now final check WiFi/Bluetooth status" +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py new file mode 100755 index 0000000..a5413eb --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_WiFi +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + + +btdev = BTDevice() +if not btdev : + print "No Bluetooth device, case fails" + EXIT(False) +btdev.Enable() +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +dev = WiFiDevice() + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "Enable device" + dev.Enable() + time.sleep(10) + dev.Connect(cm_open_ap_essid) + if dev.IsConnected(): + print "Guest is connected" + else: + print "Guest is not connected, test fails" + EXIT(FALSE) + time.sleep(40) + print "Diable device" + dev.Disable() + time.sleep(10) + if dev.IsConnected(): + print "Guest is still connected, test fails" + EXIT(FALSE) + else: + print "Guest is not connected" + time.sleep(40) + count += 1 + +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py new file mode 100755 index 0000000..2dea46a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_AutoConnectFromSuspend +# + +import sys +import time +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +if not dev.IsConnected(): + EXIT(False) +print 'Suspending...' +ret = commands.getstatusoutput('rtcwake -m mem -s 20') +if ret[0] != 0: + print 'rtcwake -m mem -s 20 return fail' + EXIT(False) + +print 'Resume from suspend' +time.sleep(5) +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py new file mode 100755 index 0000000..471584f --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_AutoDelete +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('') +del manager +time.sleep(2) +manager = Manager() +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'wep': + EXIT(False) + +print 'Shutdown the AP' +if manager.TurnAP('off') == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('') +#del manager +#time.sleep(2) +#manager = Manager() +count = 0 +while count < 6: + count = count + 1 + print "try %s times" % count + time.sleep(10) + manager.RequestScan('wifi') + svc = manager.GetServiceByName('shz13-otc-cisco-cm') + if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + manager.TurnAP('on') + EXIT(True) + +manager.TurnAP('on') +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py new file mode 100755 index 0000000..901401c --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityNone +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +manager.RequestScan('wifi') +time.sleep(20) +svc = manager.GetServiceByName(cm_open_ap_essid) +if svc == None: + print 'There is no AP named Guest' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'none': + EXIT(False) + +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py new file mode 100755 index 0000000..59ab0ac --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityRSN +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +print 'Setting AP to wpa psk2(RSN)' +if manager.Apset('sharedsecret', 'psk2', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'psk' and security != 'wpa' and security != 'rsn': + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py new file mode 100755 index 0000000..c1bd01d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityWEP +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'wep': + EXIT(False) + +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py new file mode 100755 index 0000000..57bd28d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityWPA +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +print 'Setting AP to wpa psk' +if manager.Apset('sharedsecret', 'psk1', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'psk' and security != 'wpa': + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py new file mode 100755 index 0000000..90fe2d5 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py @@ -0,0 +1,100 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_ForgotPassword +# + +import sys +import time +import dbus +import subprocess +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH + +dev = WiFiDevice() +svc = manager.GetServiceByName(cm_wpa2_ap["name"]) +if not svc == None: + try: + if svc.GetProperty("Favorite"): + svc.Remove() + except dbus.DBusException, error: + pass + +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"] + '1'), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +svc = dev.GetService() +if svc.GetProperty("State") == "failure": + print "The state is %s" % svc.GetProperty("State") + EXIT(True) +else: + print "The state is %s" % svc.GetProperty("State") + EXIT(False) + + +#if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: +# print 'Cannot access WiFi' +# EXIT(False) +# +#bus = dbus.SystemBus() +# +#manager = dbus.Interface(bus.get_object('net.connman', '/'), +# 'net.connman.Manager') +# +#properties = manager.GetProperties() +# +#for path in properties['Services']: +# service = dbus.Interface(bus.get_object('net.connman', +# path), 'net.connman.Service') +# +# properties = service.GetProperties() +# if properties['Name'] != 'shz13-otc-cisco-cm': +# continue +# print '%s Found with path=%s' % (properties['Name'], path) +# svc = dbus.Interface(bus.get_object('net.connman', path), +# 'net.connman.Service') +# svc.SetProperty('Passphrase', '1111000001') +# try: +# svc.Connect() +# except dbus.DBusException, error: +# pass +# time.sleep(5) +# count=1 +# while count < 5: +# try: +# properties = svc.GetProperties() +# if properties['State'] == 'failure': +# EXIT(True) +# except dbus.DBusException, error: +# pass +# time.sleep(5) +# count = count + 1 +#EXIT(False) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py new file mode 100755 index 0000000..3bcc7fd --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py @@ -0,0 +1,103 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_RememberPasswd +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#manager.RequestScan() +#svc = manager.GetServiceByName(cm_wpa2_ap["name"]) +#if svc == None: +# print "There is no AP named %s" % cm_wpa2_ap["name"] +# EXIT(False) +#try: +# if svc.GeProperty("Favorite"): +# svc.Remove() +#except dbus.DBusException, error: +# pass +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +if not dev.IsConnected(): + print "Can't connected to %s with password: %s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"]) + EXIT(False) +try: + dev.Disconnect() +except dbus.DBusException, error: + pass +if dev.IsConnected(): + print "Can't disconnected %s" % cm_wpa2_ap["name"] + +dev.Connect(cm_wpa2_ap["name"]) +EXIT(dev.IsConnected()) + + +#if manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1) == False: +# print 'Cannot access WiFi' +# EXIT(False) +#svc = manager.GetServiceByName('shz13-otc-cisco-cm') +#if svc == None: +# print 'There is no AP named shz13-otc-cisco-cm' +# EXIT(False) +#try: +# svc.Disconnect() +#except dbus.DBusException, error: +# pass +# +#print 'Connecting to Guest Network' +#dev = WiFiGuestDevice() +#svc1 = dev.GetService() +#props = svc1.GetProperties() +#print 'name is %s' % props['Name'] +#if svc1.BroadcastPing(1400): +# print 'Connected' +#else: +# print 'Not connected' +# EXIT(False) +# +#del manager +#manager = Manager() +#svc = manager.GetServiceByName('shz13-otc-cisco-cm') +#if svc == None: +# print 'There is no AP named shz13-otc-cisco-cm' +# EXIT(False) +#print 'Connecting to first AP without providing password' +#svc.Connect() +#if svc.BroadcastPing(1400): +# print 'Connected' +#else: +# print 'Not connected' +# EXIT(False) +# +#EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py new file mode 100755 index 0000000..09ebebf --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel1 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py new file mode 100755 index 0000000..73f7656 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel10 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 10) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py new file mode 100755 index 0000000..e1988c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel11 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 11) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py new file mode 100755 index 0000000..d5339c2 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel2 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 2) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py new file mode 100755 index 0000000..6169061 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel3 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 3) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py new file mode 100755 index 0000000..0a9fa40 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 4) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py new file mode 100755 index 0000000..6cb0c96 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel5 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 5) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py new file mode 100755 index 0000000..6a891c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel6 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 6) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py new file mode 100755 index 0000000..a117a63 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel7 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 7) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py new file mode 100755 index 0000000..c5b89c1 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel8 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 8) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py new file mode 100755 index 0000000..3d83865 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel9 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 9) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py new file mode 100755 index 0000000..e0d3034 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_BigBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py new file mode 100755 index 0000000..ae455ae --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py new file mode 100755 index 0000000..c1bdbeb --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py new file mode 100755 index 0000000..16f855f --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +if dev.IsConnected() == False: + print 'The Wifi is not connected' + Exit(False) + +svc = dev.GetService() +svc.Disconnect() +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py new file mode 100755 index 0000000..f0f423e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py new file mode 100755 index 0000000..cf3f423 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py new file mode 100755 index 0000000..7564280 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = WiFiGuestDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py new file mode 100755 index 0000000..b268c90 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = WiFiGuestDevice() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = WiFiGuestDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py new file mode 100755 index 0000000..cb50bbe --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py new file mode 100755 index 0000000..8d9b113 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py new file mode 100755 index 0000000..78fcf09 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py new file mode 100755 index 0000000..537ee0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py new file mode 100755 index 0000000..2b3bcf7 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py new file mode 100755 index 0000000..821b750 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py new file mode 100755 index 0000000..7dd354a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_SmallBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py new file mode 100755 index 0000000..61304d0 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Long +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('111122223333444455556666111', 'wep128', + 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py new file mode 100755 index 0000000..df68b62 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Short +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('1111222233334444555566661', 'wep128', 1, + 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py new file mode 100755 index 0000000..4570779 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Wrong +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('11112222333344445555666611', 'wep128', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, '11112222333354445555666611', 'wep128', 1, + 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py new file mode 100755 index 0000000..ef542ae --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'baaaaaaaaaaaa', 'wep128', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py new file mode 100755 index 0000000..f157880 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Long +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('11110000000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py new file mode 100755 index 0000000..ecc0cc5 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Short +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('111100000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py new file mode 100755 index 0000000..ac9d6c1 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Wrong +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('1111000000', 'wep64', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, '1111100000', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py new file mode 100755 index 0000000..bc31f5b --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('6161616161', 'wep64', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'aaaab', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py new file mode 100755 index 0000000..eece42a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Broadcast +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py new file mode 100755 index 0000000..0810f94 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Hidden +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py new file mode 100755 index 0000000..7e25b41 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Open +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +# EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py new file mode 100755 index 0000000..e15c92d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastRSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py new file mode 100755 index 0000000..d20eb22 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastTKIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py new file mode 100755 index 0000000..4126a0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py new file mode 100755 index 0000000..a8f1800 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py new file mode 100755 index 0000000..d580541 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenRSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py new file mode 100755 index 0000000..8705c0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenTKIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py new file mode 100755 index 0000000..b0c1bb9 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 1, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py new file mode 100755 index 0000000..348af80 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py new file mode 100755 index 0000000..8147d62 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_PSK1 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk1', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py new file mode 100755 index 0000000..8d124ec --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_PSK2 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py new file mode 100755 index 0000000..3cd0eca --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py new file mode 100755 index 0000000..e45b0ac --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN_Download +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH + +#dev = WiFiDevice() +#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'rsn', 1, 0, 1) +#EXIT(dev.Download()) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +dev = WiFiDevice() +dev.Connect(cm_wpa2_ap["name"]) +proc.kill() +EXIT(dev.download()) + + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py new file mode 100755 index 0000000..17cbb44 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN_Upload +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#dev = WiFiDevice() +#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'psk', 1, 0, 1) +#EXIT(dev.Upload()) + +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +dev = WiFiDevice() +dev.Connect(cm_wpa2_ap["name"]) +proc.kill() +EXIT(dev.upload()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py new file mode 100755 index 0000000..38a6c76 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Shared +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py new file mode 100755 index 0000000..f01c341 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedBroadcastWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py new file mode 100755 index 0000000..fc0a8fc --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedBroadcastWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py new file mode 100755 index 0000000..1022848 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedHiddenWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 1, + 1)) + +# manager.Apset("61616161616161616161616161", "wep128", 1, 0, 1) +# EXIT(manager.ConnectAP("11112222333344445555666611", "wep128", 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py new file mode 100755 index 0000000..fb36f7b --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedHiddenWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py new file mode 100755 index 0000000..b4868a8 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py new file mode 100755 index 0000000..0fba50c --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP128ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1) +EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaaaaaaaaaa', 'wep128', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py new file mode 100755 index 0000000..e935fbc --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1)) +dev = WiFiDevice() +dev.Connect("test-ivi-wep-ap") +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py new file mode 100755 index 0000000..bc276f6 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP40ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('6161616161', 'wep64', 1, 0, 1) +EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaa', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py new file mode 100755 index 0000000..4853a08 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py new file mode 100755 index 0000000..104ec10 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py new file mode 100755 index 0000000..da79852 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WPA +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1)) +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/cleanup b/ivi/tts-connman-tests/src/WiFi/cleanup new file mode 100755 index 0000000..cd01845 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/cleanup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/WiFi/simple-agent b/ivi/tts-connman-tests/src/WiFi/simple-agent new file mode 100755 index 0000000..01c82ba --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/simple-agent @@ -0,0 +1,357 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.service +import dbus.mainloop.glib +import sys + +class Canceled(dbus.DBusException): + _dbus_error_name = "net.connman.Error.Canceled" + +class LaunchBrowser(dbus.DBusException): + _dbus_error_name = "net.connman.Agent.Error.LaunchBrowser" + +class Agent(dbus.service.Object): + name = None + ssid = None + identity = None + passphrase = None + wpspin = None + username = None + password = None + + @dbus.service.method("net.connman.Agent", + in_signature='', out_signature='') + def Release(self): + print("Release") + mainloop.quit() + + def input_passphrase(self): + response = {} + + if not self.identity and not self.passphrase and not self.wpspin: + print "Service credentials requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Identity="): + identity = arg.replace("Identity=", "", 1) + response["Identity"] = identity + if arg.startswith("Passphrase="): + passphrase = arg.replace("Passphrase=", "", 1) + response["Passphrase"] = passphrase + if arg.startswith("WPS="): + wpspin = arg.replace("WPS=", "", 1) + response["WPS"] = wpspin + break + else: + if self.identity: + response["Identity"] = self.identity + if self.passphrase: + response["Passphrase"] = self.passphrase + if self.wpspin: + response["WPS"] = self.wpspin + + return response + + def input_username(self): + response = {} + + if not self.username and not self.password: + print "User login requested, type cancel to cancel" + print "or browser to login through the browser by yourself." + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel") or arg.startswith("browser"): + response["Error"] = arg + if arg.startswith("Username="): + username = arg.replace("Username=", "", 1) + response["Username"] = username + if arg.startswith("Password="): + password = arg.replace("Password=", "", 1) + response["Password"] = password + else: + if self.username: + response["Username"] = self.username + if self.password: + response["Password"] = self.password + + return response + + def input_hidden(self): + response = {} + + if not self.name and not self.ssid: + args = raw_input('Answer ') + + for arg in args.split(): + if arg.startswith("Name="): + name = arg.replace("Name=", "", 1) + response["Name"] = name + break + if arg.startswith("SSID="): + ssid = arg.replace("SSID", "", 1) + response["SSID"] = ssid + break + else: + if self.name: + response["Name"] = self.name + if self.ssid: + response["SSID"] = self.ssid + + return response + + @dbus.service.method("net.connman.Agent", + in_signature='oa{sv}', + out_signature='a{sv}') + def RequestInput(self, path, fields): + print "RequestInput (%s,%s)" % (path, fields) + + response = {} + + if fields.has_key("Name"): + response.update(self.input_hidden()) + if fields.has_key("Passphrase"): + response.update(self.input_passphrase()) + if fields.has_key("Username"): + response.update(self.input_username()) + + if response.has_key("Error"): + if response["Error"] == "cancel": + raise Canceled("canceled") + return + if response["Error"] == "browser": + raise LaunchBrowser("launch browser") + return + + print "returning (%s)" % (response) + + return response + + @dbus.service.method("net.connman.Agent", + in_signature='os', + out_signature='') + def RequestBrowser(self, path, url): + print "RequestBrowser (%s,%s)" % (path, url) + + print "Please login through the given url in a browser" + print "Then press enter to accept or some text to cancel" + + args = raw_input('> ') + + if len(args) > 0: + raise Canceled("canceled") + + return + + @dbus.service.method("net.connman.Agent", + in_signature='os', + out_signature='') + def ReportError(self, path, error): + print "ReportError %s, %s" % (path, error) + retry = raw_input("Retry service (yes/no): ") + if (retry == "yes"): + class Retry(dbus.DBusException): + _dbus_error_name = "net.connman.Agent.Error.Retry" + + raise Retry("retry service") + else: + return + + + @dbus.service.method("net.connman.Agent", + in_signature='', out_signature='') + def Cancel(self): + print "Cancel" + +class VpnAgent(dbus.service.Object): + name = None + host = None + cookie = None + username = None + password = None + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='', out_signature='') + def Release(self): + print("Release VPN agent") + + def input_cookie(self): + response = {} + + if not self.cookie: + print "VPN credentials requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Cookie="): + cookie = arg.replace("Cookie=", "", 1) + response["OpenConnect.Cookie"] = cookie + else: + if self.cookie: + response["OpenConnect.Cookie"] = self.cookie + + return response + + def input_username(self): + response = {} + + if not self.username and not self.password: + print "User login requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Username="): + username = arg.replace("Username=", "", 1) + response["Username"] = username + if arg.startswith("Password="): + password = arg.replace("Password=", "", 1) + response["Password"] = password + else: + if self.username: + response["Username"] = self.username + if self.password: + response["Password"] = self.password + + return response + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='oa{sv}', + out_signature='a{sv}') + def RequestInput(self, path, fields): + print "RequestInput (%s,%s)" % (path, fields) + + response = {} + + if fields.has_key("OpenConnect.Cookie"): + response.update(self.input_cookie()) + if fields.has_key("Username") or fields.has_key("Password"): + response.update(self.input_username()) + + if response.has_key("Error"): + if response["Error"] == "cancel": + raise Canceled("canceled") + return + + print "returning (%s)" % (response) + + return response + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='os', + out_signature='') + def ReportError(self, path, error): + print "ReportError %s, %s" % (path, error) + retry = raw_input("Retry service (yes/no): ") + if (retry == "yes"): + class Retry(dbus.DBusException): + _dbus_error_name = "net.connman.vpn.Agent.Error.Retry" + + raise Retry("retry service") + else: + return + + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='', out_signature='') + def Cancel(self): + print "Cancel" + +def vpnNameOwnerChanged(proxy): + if proxy: + print("vpnd is connected to system bus") + try: + path = "/test/vpn_agent" + vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn', + "/"), + 'net.connman.vpn.Manager') + vpn_manager.RegisterAgent(path) + except: + print "vpn agent is not registered" + else: + print("vpnd is disconnected from system bus") + vpn_manager = None + +def print_usage(): + print "Usage:" + print "For hidden service:" + print "%s Name= [SSID=]" % (sys.argv[0]) + print "For EAP/WPA input:" + print "%s Identity= Passphrase= WPS=" % (sys.argv[0]) + print "For WISPr login, L2TP or PPTP input:" + print "%s Username= Password=" % (sys.argv[0]) + print "For OpenConnect input:" + print "%s Cookie=" % (sys.argv[0]) + print "Help: %s help" % (sys.argv[0]) + sys.exit(1) + +if __name__ == '__main__': + if len(sys.argv) == 2 and sys.argv[1] == "help": + print_usage() + + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + manager = dbus.Interface(bus.get_object('net.connman', "/"), + 'net.connman.Manager') + + path = "/test/agent" + object = Agent(bus, path) + + try: + vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn', "/"), + 'net.connman.vpn.Manager') + vpn_path = "/test/vpn_agent" + vpn_object = VpnAgent(bus, vpn_path) + except: + vpn_manager = None + print "net.connman.vpn is not present" + + if len(sys.argv) >= 2: + for arg in sys.argv[1:]: + if arg.startswith("Name="): + object.name = arg.replace("Name=", "", 1) + elif arg.startswith("SSID="): + object.ssid = arg.replace("SSID=", "", 1) + elif arg.startswith("Identity="): + object.identity = arg.replace("Identity=", "", 1) + elif arg.startswith("Passphrase="): + object.passphrase = arg.replace("Passphrase=", "", 1) + elif arg.startswith("WPS="): + object.wpspin = arg.replace("WPS=", "", 1) + elif arg.startswith("Username="): + object.username = arg.replace("Username=", "", 1) + vpn_object.username = arg.replace("Username=", "", 1) + elif arg.startswith("Password="): + object.password = arg.replace("Password=", "", 1) + vpn_object.password = arg.replace("Password=", "", 1) + elif arg.startswith("Cookie="): + vpn_object.cookie = arg.replace("Cookie=", "", 1) + else: + print_usage() + + try: + manager.RegisterAgent(path) + except: + print "Cannot register connman agent." + + if vpn_manager != None: + try: + vpn_manager.RegisterAgent(vpn_path) + bus.watch_name_owner('net.connman.vpn', vpnNameOwnerChanged) + except: + "Cannot register vpn agent" + + mainloop = gobject.MainLoop() + mainloop.run() + + #manager.UnregisterAgent(path) diff --git a/ivi/tts-connman-tests/src/WiFi/startup b/ivi/tts-connman-tests/src/WiFi/startup new file mode 100755 index 0000000..4919b09 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupWiFi() diff --git a/ivi/tts-connman-tests/src/common/SignalBase.py b/ivi/tts-connman-tests/src/common/SignalBase.py new file mode 100755 index 0000000..1e428d8 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalBase.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Functions used all signal test cases +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib + + +from threading import Thread + +def f( + name, + value, + path, + interface, + ): + + print 'In f' + + +func = f + + +class SignalBase: + + def __init__(self): + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + bus = dbus.SystemBus() + print 'Add signal receiver' + self.Add_Signal_Receiver(bus) + print 'Add signal receiver done' + self.mainloop = gobject.MainLoop() + self.my_ret = False + self.record = 0 + + def Add_Signal_Receiver(self, bus): + pass + + def property_changed( + self, + name, + value, + path=None, + interface=None, + ): + +# print 'Changed property name = %s path = %s interface = %s' \ +# % (name, path, interface) + + if name in self.property_name: + print 'Changed property name = %s path = %s interface = %s' \ + % (name, path, interface) + self.my_ret = True + self.mainloop.quit() +# else: +# print "The property %s for %s %s didn't changed" % (name, path, interface) +# self.my_ret = False +# self.mainloop.quit() + +class Trigger(Thread): + def __init__ (self,func): + Thread.__init__(self) + self.func = func + Thread.daemon = True + def run(self): + self.func() + diff --git a/ivi/tts-connman-tests/src/common/SignalConnman.py b/ivi/tts-connman-tests/src/common/SignalConnman.py new file mode 100755 index 0000000..a184a35 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalConnman.py @@ -0,0 +1,80 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when testing signal in Connman +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed( + name, + value, + path, + interface, + ): + + func(name, value, path, interface) + + +class SignalConnman(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + path_keyword='path', + interface_keyword='interface') + + def property_changed( + self, + name, + value, + path, + interface, + ): + + SignalBase.property_changed(self, name, value, path, interface) + + +sig = SignalConnman() +from common import * + + +def signal_connman( + name, + value, + path, + interface, + ): + + sig.property_changed(name, value, path, interface) + + +func = signal_connman diff --git a/ivi/tts-connman-tests/src/common/SignalManager.py b/ivi/tts-connman-tests/src/common/SignalManager.py new file mode 100755 index 0000000..d36326c --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalManager.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when property in Manager changes +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value): + func(name, value) + + +class SignalManager(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + dbus_interface='net.connman.Manager' + ) + + def property_changed(self, name, value): + SignalBase.property_changed(self, name, value) + + +sig = SignalManager() +from common import * + + +def signal_manager(name, value): + sig.property_changed(name, value) + + +func = signal_manager diff --git a/ivi/tts-connman-tests/src/common/SignalService.py b/ivi/tts-connman-tests/src/common/SignalService.py new file mode 100755 index 0000000..64df239 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalService.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions when property in Service +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value, path): + func(name, value, path, None) + + +class SignalService(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + print 'Added Signal' + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + dbus_interface='net.connman.Service' + , signal_name='PropertyChanged', + path_keyword='path') + + def property_changed( + self, + name, + value, + path, + interface=None, + ): + + SignalBase.property_changed(self, name, value, interface) + + +sig = SignalService() +from common import * + + +def signal_service( + name, + value, + path, + interface, + ): + + sig.property_changed(name, value, path, interface) + + +func = signal_service diff --git a/ivi/tts-connman-tests/src/common/SignalTechnology.py b/ivi/tts-connman-tests/src/common/SignalTechnology.py new file mode 100755 index 0000000..62b50cd --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalTechnology.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when property in Manager changes +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value): + func(name, value) + + +class SignalTechnology(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + dbus_interface='net.connman.Technology' + ) + + def property_changed(self, name, value): + SignalBase.property_changed(self, name, value) + + +sig = SignalTechnology() +from common import * + + +def signal_technology(name, value): + sig.property_changed(name, value) + + +func = signal_technology diff --git a/ivi/tts-connman-tests/src/common/bearer.sh b/ivi/tts-connman-tests/src/common/bearer.sh new file mode 100755 index 0000000..05fe279 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/bearer.sh @@ -0,0 +1,27 @@ +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Authors: +# Wang, Jing J +# Changlog: +# +#!/bin/sh + +if [ -z "$1" ]; then + echo "Warning: Please specify execution command" + exit 1 +fi + +#Find default user, assuming the one who launch Xorg +usr=`ps -C libsocialweb-core -o user=` +if [ $? -ne 0 ]; then + echo "Error: Fail to get Libsocialweb user" + exit 1 +fi + +su -l $usr -c "export DISPLAY=:0.0;CM_Bearer=$1 /opt/tts-connman-tests/Bearer $2" diff --git a/ivi/tts-connman-tests/src/common/common.py b/ivi/tts-connman-tests/src/common/common.py new file mode 100755 index 0000000..980022a --- /dev/null +++ b/ivi/tts-connman-tests/src/common/common.py @@ -0,0 +1,1228 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common functions used in all test cases +# + +import dbus +import string +import commands +import time +import re +import subprocess +import os, sys +from config import * +from threading import Timer + +#chagne timeout from 90 to 360 +TIMEOUT = 300 + +################################################### +# ........Common Function +################################################### + +def common_timeout(): + print "Oops Timeout!!!" + os.system("(sleep 1; killall `basename " + sys.argv[0] + "`)") + +def cmd_exists(cmd): + return os.path.exists(cmd) +# return subprocess.call(["which", cmd], +# stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0 + + +def IPIsValid(ip): + return re.match("(\d\d?\d?\.){3}\d\d?\d?", ip) != None + + +def MacAddrIsValid(mac): + return re.match("([a-fA-F0-9]{2}[:|\-]?){5}[a-fA-F0-9]{2}", mac) \ + != None + + +def EXIT(ret): + if ret == True: + print 'Test Case PASS' + else: + print 'Test Case FAIL' + exit(ret != True) + +def EXIT1(ret, op): + if ret == True: + op() + print 'Test Case PASS' + else: + op() + print 'Test Case FAIL' + exit(ret != True) + +def ASSERT(ret, msg, op): + if ret == False: + op() + print msg + print 'Test Case FAIL' + exit(ret != True) + +def IsDaemonExist(daemon): + command = "ps aux|grep %s" %(daemon) + ret = commands.getstatusoutput(command) + output = ret[1].split('\n') + for item in output[:]: + if item.find('grep %s' %(daemon)) != -1: + output.remove(item) + if ret[0] == 0 and len(output) > 0: + print "Daemon is %s" %(output) + return True + else: + print "daemon %s is not lauched" %(daemon) + return False + +def OneDaemonExist(daemon): + command = "ps aux|grep %s" %(daemon) + ret = commands.getstatusoutput(command) + output = ret[1].split('\n') + for item in output[:]: + if item.find('grep %s' %(daemon)) != -1: + output.remove(item) + if ret[0] == 0 and len(output) == 1: + print "Daemon is %s" %(output) + return True + else: + return False + + +################################################### +# ........Class Manager +################################################### + + +class Manager: + + def __init__(self): + self.bus = dbus.SystemBus() + if self.bus == None: + print 'There is no dbus, please check' + EXIT(False) + self.manager = \ + dbus.Interface(self.bus.get_object('net.connman', '/' + ), 'net.connman.Manager') + if self.manager == None: + print 'There is no connmand...do you startup connmand?' + EXIT(False) + print 'Attached to a connman manager' + self.properties = self.manager.GetProperties() + self.LatestSvc = None + + def GetTechnologies(self): + return self.manager.GetTechnologies() + + def GetServices(self): + return self.manager.GetServices() + + def GetProperties(self): + return self.manager.GetProperties() + + def GetServices(self): + return self.manager.GetServices() + + def SetProperty(self, name, value): + self.manager.SetProperty(name, value) + print 'Set Manager property %s = %s' % (name, value) + + def GetState(self): + properties = self.GetProperties() + return properties["State"] + + def GetOfflineMode(self): + properties = self.GetProperties() + return properties["OfflineMode"] + + def CreateProfile(self, name): + print 'Create profile %s' % name + return self.manager.CreateProfile(name) + + def RemoveProfile(self, path): + print 'Removing profile %s ...' % path + self.manager.RemoveProfile(path) + print 'Removed' + + def RequestScan(self, type): + if type == '': + print 'Scanning for all technologies...' + type = 'wifi' + else: + print 'Scanning for %s technology...' % type + bus = dbus.SystemBus() + path = "/net/connman/technology/" + type + technology = dbus.Interface(bus.get_object("net.connman", path), + "net.connman.Technology") + technology.Scan() + print 'Done' + + def EnableTechnology(self, type): + self.Online() + if type == '': + print 'EnableTechnology for all technologies...' + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + print 'Enabling %s...' % tech + try: + technology.SetProperty("Powered", True) + except dbus.DBusException, e: + pass + +# print 'EnableTechnology for all technologies...' +# props = self.manager.GetProperties() +# for tech in props['EnabledTechnologies']: +# path = "/net/connman/technology/" + tech +# technology = manager.GetSubObject(path, 'Technology') +# print 'Enabling %s...' % tech +# try: +# technology.SetProperty("Powered", True) +# except dbus.DBusException, e: +# pass + + else: + print 'EnableTechnology for %s technology...' % type + path = "/net/connman/technology/" + type + technology = manager.GetSubObject(path, 'Technology') + try: + technology.SetProperty("Powered", True) + except dbus.DBusException, e: + pass + time.sleep(5) + print 'Done' + + def DisableTechnology(self, type): + if type == '': + print 'DisableTechnology for all technologies...' + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + print 'Enabling %s...' % tech + try: + technology.SetProperty("Powered", False) + except dbus.DBusException, e: + pass +# props = self.manager.GetProperties() +# for tech in props['EnabledTechnologies']: +# path = "/net/connman/technology/" + tech +# technology = manager.GetSubObject(path, 'Technology') +# print 'Disabling %s...' % tech +# try: +# technology.SetProperty("Powered", False) +# except dbus.DBusException, e: +# pass + +# try: +# self.manager.DisableTechnology(tech) +# except dbus.DBusException, e: +# pass + else: + print 'DisableTechnology for %s technology...' % type +# try: +# self.manager.DisableTechnology(type) +# except dbus.DBusException, e: +# pass + path = "/net/connman/technology/" + type + technology = manager.GetSubObject(path, 'Technology') + try: + technology.SetProperty("Powered", False) + except dbus.DBusException, e: + pass + + + time.sleep(5) + print 'Done' + + def Startup(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('wifi') + time.sleep(10) + + def StartupWiFi(self): + self.Startup() + + def StartupEthernet(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + + def Startup3G(self): + self.DisableTechnology('') + self.EnableTechnology('cellular') + time.sleep(10) + + def StartupBT(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('bluetooth') + time.sleep(10) + + def Cleanup(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('wifi') + time.sleep(5) + + def RegisterAgent(self, path): + print 'RegisterAgent for path' + self.manager.RegisterAgent(path) + + def UnregisterAgent(self, path): + print 'UnregisterAgent for path' + self.manager.UnregisterAgent(path) + + def RegisterCounter(self, path, interval): + print 'RegisterCounter for path' + self.manager.RegisterCounter(path, interval) + + def UnregisterCounter(self, path): + print 'UnregisterCounter for path' + self.manager.UnregisterCounter(path) + + def RequestSession(self, bearer): + print 'Request a networking session for %s' % bearer + return self.manager.RequestSession(bearer) + + def ReleaseSession(self): + print 'Release a networking session' + return self.manager.ReleaseSession() + + def Offline(self): + self.SetProperty('OfflineMode', dbus.Boolean(1)) + + def Online(self): + self.SetProperty('OfflineMode', dbus.Boolean(0)) + + def GetSubObject(self, path, name): + interface = 'net.connman.' + name + self.subobj = \ + dbus.Interface(self.bus.get_object('net.connman', + path), interface) + return self.subobj + + def ConnectService( + self, + ssid, + passphrase='', + security='none', + ): + + print 'Connect to Service %s with passphrase = %s security = %s...' \ + % (ssid, passphrase, security) + try: + path = self.manager.ConnectService({ + 'Type': 'wifi', + 'Mode': 'managed', + 'SSID': ssid, + 'Security': security, + 'Passphrase': passphrase, + }) + except dbus.DBusException, e: + return None + print 'Connected to %s' % path + return path + + + # ConnectWiFi: Connect to an WiFi AP with relative params + # passphrase: passphrase string + # security: wep64/wep128/psk/psk1/psk2/wpa/rsn/wep64s/wep128s + # open: 0: shared 1: open + # hidden: 0: broadcast 1: hidden + # channel: 1 - 11 + def ConnectWiFi( + self, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + if self.Apset(passphrase, security, open, hidden, channel): + return self.ConnectAP(cm_apset_ap_essid, passphrase, security, + open, hidden, channel) + return False + def TurnAP(self, state): + apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path + if state == 'on': + apset_cmd = apset_cmd + ' activate' + else: + apset_cmd = apset_cmd + ' shutdown' + + ret = commands.getstatusoutput(apset_cmd) + time.sleep(5) + if ret[0] != 0: + print 'Command %s return fail' % apset_cmd + return False + print 'apset done' + return True + + # Apset: Setting AP with relative params + # Parameter values are same as ConnectWiFi + def Apset( + self, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + print 'Setting AP...' + apstr = ' MODE N2.4-ONLY ' + apstr += ' CHANNEL ' + `channel` + if open == 1: + apstr += ' AUTH open ' + else: + apstr += ' AUTH shared ' + if hidden == 0: + apstr += ' BCAST enable ' + else: + apstr += ' BCAST disable ' + if security == 'wep64': + apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `passphrase` + elif security == 'wep128': + apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' + `passphrase` + if security == 'wep64s': + apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `4141414141` + elif security == 'wep128s': + apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' \ + + `41414141414141414141414141` + elif security == 'psk': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'psk1': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'psk2': + apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES ' + elif security == 'wpa': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'rsn': + apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES ' + print 'apset string is %s' % apstr + apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path \ + + apstr + ret = commands.getstatusoutput(apset_cmd) + if ret[0] != 0: + print 'Command %s return fail' % apset_cmd + return False + print 'apset done' + print 'Enable/Disable wifi to refresh ap list' + manager.DisableTechnology('wifi') + time.sleep(3) + manager.EnableTechnology('wifi') + time.sleep(3) + + return True + + # Refer to ConnectWiFi + def ConnectAP( + self, + essid=cm_apset_ap_essid, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + print 'Connecting to AP...' + sec = '' + if security == 'wep64': + sec = 'wep' + elif security == 'wep128': + sec = 'wep' + if security == 'wep64s': + sec = 'wep' + passphrase = 's:AAAAA' + elif security == 'wep128s': + sec = 'wep' + passphrase = 's:AAAAAAAAAAAAA' + elif security == 'psk': + sec = 'psk' + elif security == 'psk1': + sec = 'psk' + elif security == 'psk2': + sec = 'psk' + elif security == 'wpa': + sec = 'wpa' + elif security == 'rsn': + sec = 'rsn' + self.manager.RequestScan('wifi') + time.sleep(2) + path = self.ConnectService(essid, passphrase, + sec) + print 'essid is %s passphrase is %s sec is %s' % (essid, passphrase, sec) + time.sleep(5) + print 'path is %s' % path + if path == None: + print "ConnectService failed" + return None + i = 1 + while i < 3: + svc = self.GetService(path) + if svc == None: + continue + if svc.IsReady(): + self.LatestSvc = svc + break + else: + svc.Connect() + time.sleep(5) + i += 1 + time.sleep(5) + return svc.BroadcastPing() + + def GetService(self, path=None): + if path == None: + return self.LatestSvc + service = None + self.LatestSvc = None + try: + service = \ + dbus.Interface(self.bus.get_object('net.connman' + , path), 'net.connman.Service') + except dbus.DBusException, e: + return None + time.sleep(1) + svc = Service(service) + print 'Service %s found' % path + self.LatestSvc = svc + return svc + + #Updated By JH +# def GetServiceByName(self, Name): +# props = self.GetProperties() +# for path in props['Services']: +# service = \ +# dbus.Interface(self.bus.get_object('net.connman' +# , path), 'net.connman.Service') +# properties = service.GetProperties() +# if properties['Name'] == Name: +# svc = Service(service) +# return svc +# return None + def GetServiceByName(self, Name): + services = self.GetServices() + for path, props in services: + service = dbus.Interface(self.bus.get_object('net.connman' + , path), 'net.connman.Service' + ) + properties = service.GetProperties() + + if properties['Name'] == Name: + return Service(service) + + +def ManagerObjectIsReady(): + if manager.bus == None: + print 'There is no dbus' + return False + if manager.manager == None: + print 'There is no connman, please check if there is connmand' + return False + return True + + +def ManagerSubObjectIsReady(name): + SubObjectNameMap = {'Service': 'Services', + 'Technology': 'Technologies', + 'Profile': 'Profiles'} + name1 = SubObjectNameMap[name] + for path in manager.properties[name1]: + print path + service = manager.GetSubObject(path, name) + if service != None: + print 'There is at least one %s, the testing success!' \ + % name + return True + print 'We cannot find any %s object, the testing fails!' % name + return False + + +def ServiceObjectIsReady(): + return ManagerSubObjectIsReady('Service') + + +def TechnologyObjectIsReady(): + return ManagerSubObjectIsReady('Technology') + + +def ProfileObjectIsReady(): + return ManagerSubObjectIsReady('Profile') + + +################################################### +# ........Class Service +################################################### + +class Service: + + def __init__(self, svc): + self.svc = svc + + def GetProperties(self): + try: + self.properties = self.svc.GetProperties() + except dbus.DBusException, e: + return None + return self.properties + + def GetProperty(self, name): + props = self.GetProperties() + if name in props.keys(): + return props[name] + return None + + def SetProperty(self, name, value): + print 'Set Service property %s = %s' % (name, value) + try: + self.svc.SetProperty(name, value) + except dbus.DBusException, e: + return False + + def ClearProperty(self, name): + try: + self.svc.ClearProperty(name) + except dbus.DBusException, e: + return False + + def Connect(self): + if self.svc == None: + print 'No such service' + return False + print 'Connecting...' + loop = 1 + while loop < 3: + try: + self.svc.Connect() + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyConnected': + print 'The service is already connected' + return True + elif e._dbus_error_name \ + == 'net.connman.Error.InProgress': + loop = loop + 1 + print 'Still in connecting' + time.sleep(10) + continue + else: + print e + return False + time.sleep(20) + if self.IsReady(): + print 'Connected' + time.sleep(20) + return True + else: + print 'Not connected' + return False + + def Disconnect(self): + try: + self.svc.Disconnect() + except dbus.DBusException, e: + return False + + def Remove(self): + try: + self.svc.Remove() + except dbus.DBusException, e: + return False + + def MoveBefore(self, service): + try: + self.svc.MoveBefore(service) + except dbus.DBusException, e: + return False + + def MoveAfter(self, service): + try: + self.svc.MoveAfter(service) + except dbus.DBusException, e: + return False + + def IsReady(self): + try: + self.properties = self.svc.GetProperties() + except dbus.DBusException, e: + return False + state = self.properties['State'] + return state == 'ready' or state == 'online' or state == 'login' + + # Basically we can get response through broadcast + def BroadcastPing(self, size=0): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + count = 0 + while count < 5: + ip = self.GetIP() + if ip != None: + break + time.sleep(5) + count += 1 + if ip == None: + return False + ip1 = ip.split('.') + bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.255' + if size != 0: + ping_string = 'ping -c 5 -s %s -b %s' % (size, bip) + else: + ping_string = 'ping -c 5 -b %s' % bip + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + if ret[0] == 0: + return True + # Guess if there is a machine xxx.xxx.xxx.1 + bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.1' + if size != 0: + ping_string = 'ping -c 5 -s %s -b %s' % (size, bip) + else: + ping_string = 'ping -c 5 -b %s' % bip + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + if ret[0] == 0: + return True + + try: + if self.Ping(64, self.GetGateway()): + return True + if self.Ping(64, self.GetNameserver()): + return True + except dbus.DBusException, e: + pass + # ping otc-qa, an ugly solution :-( + if self.Ping(64, cm_ping_server_ip): + return True + # Unfortuanately sometime test environment does not set + # ping response server, and even filter icmp. + # Since this function just test IP address work + # So just check some properties are set by dhcp + try: + if (self.GetGateway() != None): + return True + if (self.GetNameserver() != None): + return True +# if (self.GetDomains() != None): +# return True + except dbus.DBusException, e: + pass + + return False + + # If connected to Internet, we can always connect to www.intel.com + def Ping(self, size=0, hostname='www.intel.com'): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + if size != 0: + ping_string = 'ping -c 5 -s %s %s' % (size, hostname) + else: + ping_string = 'ping -c 5 %s' % hostname + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + return ret[0] == 0 + + def GetIP(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if 'IPv4' not in self.properties.keys(): + print 'No IPv4 properties' + return None + + if len(self.properties['IPv4']) == 0: + print 'Cannot get IPv4 for this device' + return None + return self.properties['IPv4']['Address'] + + def GetNameserver(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if "Nameservers" not in self.properties.keys(): + print 'Cannot get Nameservers for this device' + return None + return self.properties['Nameservers'][0] + + def GetGateway(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if "Gateway" not in self.properties['IPv4'].keys(): + print 'Cannot get Gateway for this device' + return None + return self.properties['IPv4']['Gateway'] + + def HasIP(self): + ip = self.GetIP() + if ip == None: + return False + print 'IP address is %s' % ip + return IPIsValid(ip) + + def IsDHCP(self): + self.properties = self.GetProperties() + if self.properties == None: + return False + method = self.properties['IPv4']['Method'] + print 'IPv4 Method of the service is %s' % method + return method == 'dhcp' + + def IsFixed(self): + self.properties = self.GetProperties() + if self.properties == None: + return False + method = self.properties['IPv4']['Method'] + print 'IPv4 Method of the service is %s' % method + return method == 'fixed' + + +################################################### +# ........Class Device +# The base class for Device, real device will +# derived from this class +################################################### + + +class Device: + + def __init__(self, name, nth, enable = True): + self.device = None + self.intf = None + self.tech = None +# for path in manager.properties['Technologies']: + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + properties = technology.GetProperties() + if "Name" not in properties.keys() or properties['Name'] != name: + continue + i = 1 + self.manager = manager + self.tech = technology + self.name = name + self.type = properties['Type'] + print 'Got it: %s' % path + if enable: + manager.EnableTechnology(self.type) + return + print 'No such device!' + + def GetProperties(self): + return self.tech.GetProperties() + + def SetProperty(self, name, value): + print 'Set Device property %s = %s' % (name, value) + self.tech.SetProperty(name, value) + + def GetService(self, servicename=None): + #properties = self.manager.GetProperties() + #for path in properties['Services']: + # service = dbus.Interface(self.manager.bus.get_object('net.connman' + # , path), 'net.connman.Service' + # ) +# self.manager.RequestScan(self.type) + services = self.manager.GetServices() + for path,props in services: + service = dbus.Interface(self.manager.bus.get_object('net.connman' + , path), 'net.connman.Service' + ) + properties = service.GetProperties() +# if "Name" in properties.keys() and servicename!=None: +# if servicename != properties["Name"]: +# continue + if servicename!=None: + if "Name" not in properties.keys(): + continue + if servicename != properties["Name"]: + continue + else: + if self.type != properties["Type"]: + continue + svc = Service(service) + print 'Service %s found' % path + return svc + + print 'Service not found' + return None + + def GetTechnology(self): + return self.tech + + def GetInterface(self): + if self.intf: + return self.intf + svc = self.GetService() + props1 = svc.GetProperties() + props = props1['Ethernet'] + print props + key = 'Interface' + if key in props.keys(): + self.intf = props['Interface'] + print 'There is the key Interface' + return self.intf + return None + + def ifconfigUP(self): + intf = self.GetInterface() + if intf == None: + print 'The device interface name is empty, cannot ifconfig' + return False + cmd = 'ifconfig ' + intf + ' up' + ret = commands.getstatusoutput(cmd) + print '%s returns %s' % (cmd, ret[0]) + if ret[0] != 0: + return False + return True + + def ifconfigDown(self): + intf = self.GetInterface() + if intf == None: + print 'The device interface name is empty, cannot ifconfig' + return False + cmd = 'ifconfig ' + intf + ' down' + ret = commands.getstatusoutput(cmd) + print '%s return %s' % (cmd, ret[0]) + if ret[0] != 0: + return False + return True + + def PoweredOff(self): + '''Powered off device''' + props = self.GetProperties() + type = props['Type'] + print "Disable %s" % type + manager.DisableTechnology(type) + time.sleep(1) + + def Disable(self): + self.PoweredOff() + + def PoweredOn(self): + '''Powered on device''' + + props = self.GetProperties() + type = props['Type'] + print "Enable %s" % type + manager.EnableTechnology(type) + time.sleep(1) + + def Enable(self): + self.PoweredOn() + + def IsPoweredOff(self): + properties = self.tech.GetProperties() + print 'Device Powered state is %s' % properties['Powered'] + return properties['Powered'] == False + + def IsDisabled(self): + return self.IsPoweredOff() + + def IsExist(self): + return self.tech != None + + def IsPoweredOn(self): + properties = self.tech.GetProperties() + print 'Device Powered state is %s' % properties['Powered'] + return properties['Powered'] + + def IsEnabled(self): + return self.IsPoweredOn() + + def HasIP(self): + service = self.GetService() + return service != None and service.HasIP() + + def IsConnected(self): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + service = self.GetService() + return service != None and service.BroadcastPing() + + def IsSCPWork(self): + print 'scp to server' + ret = commands.getstatusoutput(cm_scp_download) + if ret[0] != 0: + print 'scp failed' + return False + print 'scp success' + print 'scp from server' + ret = commands.getstatusoutput(cm_scp_upload) + if ret[0] != 0: + print 'scp failed' + return False + print 'scp success' + commands.getstatusoutput(cm_ssh_rm) + commands.getstatusoutput(cm_rm) + return True + + def IsReEnableWorks(self): + if self.IsEnabled(): + self.Disable() + self.Enable() + return self.IsEnabled() + + def Upload(self, cmd): + print "Uploading file with %s" % (cmd) + ret = commands.getstatusoutput(cmd) + if ret[0] == 0: + print "Upload success!" + else: + print "Upload failed!" + print ret + return ret[0] == 0 + + def Download(self, cmd): + print "Downloading file with %s" % (cmd) + ret = commands.getstatusoutput(cmd) + if ret[0] == 0: + print "Download success!" + else: + print "Download failed!" + print ret + return ret[0] == 0 + + def Connect(self): + self.GetService().Connect() + + def Disconnect(self): + self.GetService().Disconnect() + +class EthDevice(Device): + + def __init__(self): + Device.__init__(self, 'Wired', 1) + svc = self.GetService() + if svc == None: + return + svc.Connect() + + def Upload(self): + return (Device.Upload(self, cm_eth_upload)) + + def Download(self): + return (Device.Download(self, cm_eth_download)) + + +class WiFiDevice(Device): + + def __init__(self): + Device.__init__(self, 'WiFi', 1) + self.ssid = cm_open_ap_essid + + def GetService(self): + service = Device.GetService(self, self.ssid) + if service == None: + return service + properties = service.GetProperties() + if properties['Name']: + print 'WiFi essid is %s' % properties['Name'] + else: + print 'There is no essid' + return service + + def Connect( + self, + ssid, + passphrase='', + security='none', + ): + self.ssid = ssid + service = self.GetService() + if service: + properties = service.GetProperties() + if ssid == properties['Name']: + if properties['State'] in ['ready', 'online', 'login']: + print 'The service is already in state %s' \ + % properties['State'] + return True +# device_path = manager.ConnectService(ssid) + time.sleep(10) + #service = Device.GetService(self, ssid) + service = self.GetService() + if service == None: + services = self.manager.GetServices() + for path, props in services: + service_ = dbus.Interface(self.manager.bus.get_object('net.connman' + , path), 'net.connman.Service') + print service_ + properties_ = service_.GetProperties() + + if properties_["Favorite"] == True and properties_["Type"] == 'wifi': + print "remove favoirte service: %s" % service_ + service_.Remove() + + scan_times = 0 + while scan_times < 3 and service == None: + time.sleep(60) + self.manager.RequestScan('wifi') + time.sleep(10) + service = self.GetService() + scan_times += 1 + + properties = service.GetProperties() + if properties['State'] in ['ready', 'online', 'login']: + print 'state is %s' % properties['State'] + return True + service.Connect() + + count = 0 + while count < 10: + properties = service.GetProperties() + if properties['State'] in ['ready', 'online', 'login']: + print 'state is %s' % properties['State'] + return True + count = count + 1 + time.sleep(5) + print 'Current state is not ready' + return False + + def Disconnect(self): + service = self.GetService() + service.Disconnect() + + def Upload(self): + return (Device.Upload(self, cm_wifi_upload)) + + def Download(self): + return (Device.Download(self, cm_wifi_download)) + + +class C3GDevice(Device): + + def __init__(self): + Device.__init__(self, '3G', 1) + + def GetService(self): + props = manager.GetProperties() + for path in props['Services']: + service = \ + dbus.Interface(manager.bus.get_object('net.connman' + , path), 'net.connman.Service') + + properties = service.GetProperties() + for key in properties.keys(): + if key == 'Mode' and properties['Mode'] == 'gprs': + svc = Service(service) + return svc + return None + + def Connect(self): + service = Device.GetService(self) + if service == None: + return False + service.Connect() + count = 0 + while count < 10: + properties = service.GetProperties() + if properties['State'] == 'online': + print 'state is %s' % properties['State'] + return True + count = count + 1 + time.sleep(5) + return False + + def BroadcastPing(self, size=0): + service = self.GetService() + if service == None: + return True + loop = 0 + while loop < 5: + state = service.GetProperty('state') + if state == 'online': + break + time.sleep(10) + loop = loop + 1 + return service.Ping() + + def IsConnected(self): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + return self.BroadcastPing() + + def Upload(self): + return (Device.Upload(self, cm_3g_upload)) + + def Download(self): + return (Device.Download(self, cm_3g_download)) + + +class BTDevice(Device): + + def __init__(self): + Device.__init__(self, 'Bluetooth', 1) + + def Connect(self): + service = Device.GetService(self) + service.Connect() + + def Upload(self): + return (Device.Upload(self, cm_bt_upload)) + + def Download(self): + return (Device.Download(self, cm_bt_download)) + +class WiFiGuestDevice(WiFiDevice): + + def __init__(self, ssid=cm_open_ap_essid): + WiFiDevice.__init__(self) + service = Device.GetService(self, self.ssid) + print 'Now connect...' + self.Enable() +# service.Connect() + WiFiDevice.Connect(self, cm_open_ap_essid) + +class WiFiSecDevice(WiFiDevice): + def __init__(self, essid, key): + WiFiDevice.__init__(self) + self.Enable() + self.ssid = essid + self.service = Device.GetService(self, self.ssid) + self.service.SetProperty("Passphrase", key) + + def GetService(self): + return self.service + + def Connect(self): + service = self.GetService() + service.Connect() + + def Disconnect(self): + service = self.GetService() + service.Disconnect() + +try: + #change the time out from 180 to 360 + t = Timer(300, common_timeout) + t.daemon = True + t.start() +except: + print "oops" +manager = Manager() + diff --git a/ivi/tts-connman-tests/src/common/config.py b/ivi/tts-connman-tests/src/common/config.py new file mode 100755 index 0000000..793b493 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/config.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common code to check the value of a property +# + +# The control server that connects to AP, so that test script can +# set AP parameters through apset script +cm_apset_server = "192.168.x.x" + +# The full path of the apset script in control server +cm_apset_server_path= "/usr/local/bin/apset/cisco/apset" + +cm_apset_ap_essid = "test-apset-ap" + +# The essid of AP, this must be same as in apset script +cm_open_ap_essid = 'test-ivi-open-ap' +cm_wep_ap = {"name" : "test-ivi-wep-ap", "password" : "1234567890"} +cm_wpa2_ap = {"name" : "test-ivi-wpa2-ap", "password" : "12345678"} +cm_isolate_ap = {"name" : "test-ivi-isolate-ap", "password" : "12345678"} +cm_available_ap = {"name" : "test-ivi-avalible-ap", "password" : "12345678"} + + +# For data transfer testing, we need a peer machine for upload/download +# Since different test environment has different upload/download method +# this test suite just defines configurable varibles for each technology +# Tester should re-configure these varibles, otherwise the result is wrong +# Data Server(peer machin) IP address +cm_data_server_ip_bt='192.168.x.x' +cm_data_server_ip_wifi='192.168.x.x' +#cm_data_server_ip_eth='192.168.x.x' +cm_data_server_ip_eth='192.168.x.x' + +#cm_bt_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +#cm_bt_download = 'scp 127.0.0.1:/usr/share/tts-connman-tests/10M /tmp' +#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 127.0.0.1:/tmp' +cm_bt_download = 'scp ' + cm_data_server_ip_bt + ':/usr/share/tts-connman-tests/10M /tmp' +cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M ' + cm_data_server_ip_bt + ':/tmp' + +cm_eth_download = 'scp ' + cm_data_server_ip_eth + ':/opt/tts-connman-tests/data/apset.tgz /tmp' +cm_eth_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_eth + ':/tmp' +#cm_eth_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_eth_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +# For 3G, We will directly connect to Internet. So we can download +# from Internet. But tester need find a way to upload to Internet so +# that upload test case works +# Download from Internet, ChangeLog-2.6.33 is about 7.5MB +cm_3g_download = 'wget --no-proxy http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.33' +# Upload to local, please revise accordingly so that to upload +# to Internet automatically +cm_3g_upload = 'curl -x "" --ftp-pasv -v -T /usr/share/tts-connman-tests/10M ftp://anonymous:tizen3gtest@ftp.x.x/pub/incoming/' + +# For WiFi, we test data transfer for WEP and PSK. These essids are only used +# for data transfer. Test cases in test set WiFiFeature still need a cisco AP +cm_ap_essid_wep64 = 'test-ivi-wep64-ap' # AP set to shared hidden wep64 +cm_ap_wep64_key = '1111111111' +cm_ap_essid_psk = 'test-ivi-psk-ap' # AP set to open broadcast RSN PSK +cm_ap_psk_key = '1111111111' +#cm_wifi_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_wifi_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +cm_wifi_download = 'scp ' + cm_data_server_ip_wifi + ':/opt/tts-connman-tests/data/apset.tgz /tmp' +cm_wifi_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_wifi + ':/tmp' + +# Give one IP address that in the same network with test devices and AP, using Ping command to check network is accessible +cm_ping_server_ip = '192.168.x.x' + +# For testing whether scp network is workable +cm_scp_download = 'scp test@x.x.x:1M /tmp/1M.1' +cm_scp_upload = 'scp /tmp/1M.1 test@x.x.x:/tmp/1M.2' +cm_ssh_rm = 'ssh test@x.x.x rm /tmp/1M.2' +cm_rm = 'rm /tmp/1M.1' diff --git a/ivi/tts-connman-tests/src/common/offline.py b/ivi/tts-connman-tests/src/common/offline.py new file mode 100755 index 0000000..73ab2dc --- /dev/null +++ b/ivi/tts-connman-tests/src/common/offline.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: offline function used in signal +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + time.sleep(2) + manager = common.manager + manager.Offline() + time.sleep(5) + manager.Online() + +def offline(Name): + sig = SignalConnman.sig + sig.property_name = Name + + trigger=SignalBase.Trigger(func) + trigger.start() + trigger.join(common.TIMEOUT) + + sig.mainloop.run() + common.EXIT(sig.my_ret) + + diff --git a/ivi/tts-connman-tests/src/common/property.py b/ivi/tts-connman-tests/src/common/property.py new file mode 100755 index 0000000..bd6b3e7 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/property.py @@ -0,0 +1,127 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common code to check the value of a property +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * + + +def InListWiFiGuest(key, list): + dev = WiFiGuestDevice() + svc = dev.GetService() + properties = svc.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + if list == ['']: + return True + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InList3G(key, list): + dev = C3GDevice() + svc = dev.GetService() + properties = svc.GetProperties() + if key in properties.keys(): + item = properties[key] + else: + item = '' + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InListManager(key, list): + properties = manager.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InListManagerM(key, list): + properties = manager.GetProperties() + print properties + if key in properties.keys(): + items = properties[key] + else: + print 'Property %s does not exist' % key + return False + print 'items is %s' % items + for item in items: + print 'item is %s' % item + if item in list: + print '%s %s is valid' % (key, item) + else: + print '%s %s is invalid' % (key, item) + return False + + return True + + +def InListTechnology(key, list): + for (path, properties) in manager.GetTechnologies(): + technology = manager.GetSubObject(path, 'Technology') + break + properties = technology.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + diff --git a/ivi/tts-connman-tests/src/common/signal_func.py b/ivi/tts-connman-tests/src/common/signal_func.py new file mode 100755 index 0000000..906eef4 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/signal_func.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: signal_func +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func1(): + time.sleep(2) + dev = common.WiFiDevice() + dev.Disable() + time.sleep(5) + dev.Enable() + time.sleep(5) + +def Dis_enable(name): + sig = SignalConnman.sig + sig.property_name = name + trigger=SignalBase.Trigger(func1) + trigger.start() + trigger.join(common.TIMEOUT) + sig.mainloop.run() + common.EXIT(sig.my_ret) + +def func2(): + time.sleep(2) + dev = common.WiFiDevice() + dev.device.SetProperty(set_name, dbus.UInt16(value)) + +def Check_By_Set_Prop(name, set_name, value): + sig = SignalConnman.sig + sig.property_name = name + trigger=SignalBase.Trigger(func2) + trigger.start() + trigger.join(common.TIMEOUT) + sig.mainloop.run() + common.EXIT(sig.my_ret) + + diff --git a/ivi/tts-connman-tests/tests.xml b/ivi/tts-connman-tests/tests.xml new file mode 100755 index 0000000..88ba23c --- /dev/null +++ b/ivi/tts-connman-tests/tests.xml @@ -0,0 +1,1178 @@ + + + + + + + + + + 1. boot system +2. 'ps aux|grep connmand' +3. check if there is a thread named connmand in background + There should be one thread named connmand in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_Boot.py + + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check ethernet State according to followin table +platform ethernet State +Upstream offline +Netbook enabled +IVI enabled +TV enabled +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Ethernet.py + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + OfflineMode is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Offlinemode.py + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep connmand' +3. the connmand should be in background +4. command 'su -' +5. command 'connmand' +6. check if the second connmand can be generated +7. ps -ef |grep -i connman + Step 7 shows there is only one connmand running. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_OneConnmand.py + + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep bluetoothd' +3. check if there is a thread named bluetoothd in background + There should be one thread named bluetoothd in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_BT.py + + + Netbook + IVI + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check bluetooth State according to followin table +platform bluetooth State +Upstream offline +Netbook offline +IVI offline +TV offline +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Bluetooth.py + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check WiFi State according to followin table +platform WiFi State +Upstream offline +Netbook enabled +IVI enabled +TV enabled +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_WiFi.py + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep wpa_supplicant' +3. check if there is a thread named wpa_supplicant in background + There should be one thread named wpa_supplicant in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_WpaSupplicant.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. test-connman list +2. Check if there is BT service +3. test-connman disable bluetooth +4. 'test-connman list' shows there is no BT service +5. test-connman enable bluetooth +6. 'test-connman list' shows there is the BT service +7. test-connman connect <bt service> +8. ping PANU server + Can ping PANU server + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsReEnableWorks.py + + + Netbook + IVI + + + + + + + + + 1. Run 'test-manager' +2. In section Technologies of the output Check the powered 'State' of bluetooth is 'true' + The powered 'State' of bluetooth is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsPoweredOn.py + + + Netbook + IVI + + + + + + + + + 1. test-connman disable bluetooth and check if powered state is 'false' by 'test-manager' +2. test-connman enable bluetooth +3. Check if powered state is 'true' by 'test-manager' + The value is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOn.py + + + Netbook + IVI + + + + + + + + + 1. test-manager shows the powered state of bluetooth is 'true' +2. test-connman disable bluetooth +3. test-manager shows the powered state of bluetooth is 'false' + The value is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOff.py + + + Netbook + IVI + + + + + + + + + 1. test-manager +2. There is a bluetooth technology + There is bluetooth technology + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_DeviceIsExist.py + + + Netbook + IVI + + + + + + + + + + + 1. Set AP in Open mode +2. Connect to the AP + Can get IP and ping the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_Open.py + + + Netbook + IVI + TV + + + + + + + + + 1. Set AP in WPA TKIP mode +2. Connect to the AP + Can get IP and ping the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_WPA.py + + + Netbook + IVI + TV + + + + + + + + + 1. Connect to AP with password +2. Disconnect to the AP +3. Connect to the same AP without password +4. ConnMan should remember the password and can connect to the AP + ConnMan should remember the password and can connect to the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_RememberPasswd.py + + + Netbook + IVI + TV + + + + + + + + + 1. Connect to AP with wrong password +2. The error property of the service will show error reason. +# According to developer ConnMan just report error in error property but the passphrase will not be empty + Error property is set. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_ForgotPassword.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Get Guest service +2. Check if Nameservers is not empty + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Nameservers.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Type of the Technology is in ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Type.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Powered is in [True, False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Powered.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Strength is 0-100 + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Strength.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if SessionMode property is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_SessionMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Security is in ['none' 'wep' 'psk' 'ieee8021x' 'wpa' 'rsn'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Security.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if OfflineMode property is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_OfflineMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if State property is in ['online' 'offline' 'connected'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Connected is in [True, False] + As expected + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Connected.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if AutoConnect is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_AutoConnect.py + + + Mobile + Netbook + TV + + + + + + + + + 1. Get Guest service +2. Check if Name is in ['Wired', 'WiFi', 'WiMAX', 'Bluetooth', 'Cellular'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Name.py + + + Mobile + Netbook + TV + + + + + + + + + 1. Get Guest service +2. Check if State is in ['ready' 'idle' 'failure' 'association' 'configuration' 'login' 'online'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Tethering is in [True, False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Tethering.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Type of the service is 'WiFi' + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Type.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Domains is not empty + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Domains.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Error is not in properties since Guest connect always success + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Error.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Name is 'Guest' + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Name.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Favorite is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Immutable is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Immutable.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + + + 1. Get the technology list from connman +2. Get the ethernet technology +3. Get the device from ethernet technology +4. Check if the device is null + There is ethernet device + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Eth_DeviceIsExist.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Make sure there is Guest WiFi network +2. Powered off the device +3. Check if we can ping Guest WiFi network + Ping cannot receive any response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_Disconnect.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. connect-service Guest +2. Get Guest WiFi IP address (ifconfig or list-service) +3. ping -c 5 -s 64 <AP address> + Receives ping response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_SmallBroadcastPing.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + "Run Instructions +1. test-manager shows the powered state of wifi is 'true' +2. test-connman disable wifi +3. test-manager shows the powered state of wifi is 'false' +Pass/Fail Criteria: The value is 'false' + The value is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOff.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. test-connman list +2. Check if there is Guest wifi service +3. test-connman disable wifi +4. 'test-connman list' shows there is no wifi service +5. test-connman enable wifi +6. 'test-connman list' shows there is the wifi Guest service +7. connect-service Guest +8. ping a machine in Guest network + ping response + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsReEnableWorks.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get the Powered status of WiFi device +2. Check the Powered status is On + The Powered status is on + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsPoweredOn.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. test-connman disable wifi and check if powered state is 'false' by 'test-manager' +2. test-connman enable wifi +3. Check if powerd state is 'true' by 'test-manager' + The value is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOn.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. connect-service Guest +2. Get Guest WiFi IP address (ifconfig or list-service) +3. ping -c 5 -s 1400 <AP address> + Ping will receive response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_BigBroadcastPing.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get the technology list from connman +2. Get the WiFi technology +3. Get the device from WiFi technology +4. Check if the device is null + There is WiFi device + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_DeviceIsExist.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + + + 1. Prepare an wifi AP that can be connected and can surf internet by this AP +2. Only connect to this WIFI AP and make sure that it can surf internet by this service +3. Check the connection state for this AP service + The state should be 'online' for this connected WIFI AP. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_State_WIFI_AvialableAP.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Powered off/on WiFi device +2.2 Connect to Guest WiFi network +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_IPv4.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Connect to Guest WiFi network service +2.2 Remove the serivce +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_IPv4.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set Service.AutoConnect to off +2.2 Set Service.AutoConnect to on +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_AutoConnect.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Powered off the device +2.2 sleep 5 seconds and Powered on the device +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Connected.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_OfflineMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set offline mode +2.2 sleep 5 seconds and set to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SM_State.py + + + Mobile + Netbook + IVI + TV + + + + diff --git a/packaging/common-connectivity-suite.spec b/packaging/common-connectivity-suite.spec new file mode 100755 index 0000000..fc6246a --- /dev/null +++ b/packaging/common-connectivity-suite.spec @@ -0,0 +1,95 @@ +%define _unpackaged_files_terminate_build 0 + +Name: common-connectivity-suite +Summary: common-connectivity-suite +Version: 0.1.0 +Release: 1 +License: GPLv2 +Group: Development/Testing +Source0: %{name}-%{version}.tar.gz + + +%description +This package is IVI common connectivity test suite + +%package -n tts-bluez-tests +Summary: Bluez test suit +Group: Development/Testing + +%description -n tts-bluez-tests +%{summary}. + + +%package -n tts-connman-tests +Summary: Connman test suit +Group: Development/Testing + +%description -n tts-connman-tests +%{summary}. + +%prep +%setup -q + +%build + +%install + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server + +install -m 0755 ivi/tts-bluez-tests/src/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/data/client/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data +cp -fr ivi/tts-bluez-tests/data/server/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server +install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests + + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + +install -m 0755 ivi/tts-connman-tests/src/3G/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/BM/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/BT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/common/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Ethernet/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Flight/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Launch/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/MBT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Profile/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Property/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Signal/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/State/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Stress/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/WiFi/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data +install -m 0755 ivi/tts-connman-tests/data/apset.tgz %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data + +install -m 0755 ivi/tts-connman-tests/network.jpg %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + +install -m 0755 ivi/tts-connman-tests/bisect.sh %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install -m 0755 ivi/tts-connman-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install -m 0755 ivi/tts-connman-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -n tts-bluez-tests +%defattr(-,root,root) +%{_datadir}/tests/%{name}/tts-bluez-tests +%license LICENSE + +%files -n tts-connman-tests +%defattr(-,root,root) +%{_datadir}/tests/%{name}/tts-connman-tests +%license LICENSE + +%changelog +* Fri May 23 2014 Wu dawei 0.1.0-1 + - Initial common connectivity suite test + -- 2.7.4