tizen ivi connectivity suite initial release 85/22585/1 submit/tizen/20140609.122908 submit/tizen_ivi/20140611.122419 submit/tizen_ivi/20140611.122525 submit/tizen_ivi/20140612.132924
authorzhang xiaolei <xiaolei.zhang@intel.com>
Mon, 9 Jun 2014 11:33:22 +0000 (19:33 +0800)
committerzhang xiaolei <xiaolei.zhang@intel.com>
Mon, 9 Jun 2014 11:33:22 +0000 (19:33 +0800)
Change-Id: I46a5b0ca30784b404aa924a8092a86c51d05f948
Signed-off-by: zhang xiaolei <xiaolei.zhang@intel.com>
357 files changed:
LICENSE [new file with mode: 0755]
ivi/tts-bluez-tests/README [new file with mode: 0755]
ivi/tts-bluez-tests/data/client/README [new file with mode: 0755]
ivi/tts-bluez-tests/data/client/auto_accept_agent [new file with mode: 0755]
ivi/tts-bluez-tests/data/client/bluetooth_env [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/.README.swp [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/README [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/auto_accept_agent [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/gather_info.sh [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/root_file_1.bmp [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/root_file_2.bmp [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/root_file_3.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/server_info [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server_cleanup.sh [new file with mode: 0755]
ivi/tts-bluez-tests/data/server/server_startup.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/README [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_get_address.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_get_power.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_scan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_power.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_get_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_put_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_gap_type_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_clock_local.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_dev.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_epinq.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_info.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_inq.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_hci_spinq.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_opp_send_files.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_panu_setup_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_add.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_del.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_get.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_search_local.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_system_package_bluez.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/bt_system_package_obexd.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_disable_sspmode.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_enable_sspmode.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_auth.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_encrypt.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_iscan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_noauth.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_noencrypt.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_noscan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_piscan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_set_pscan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/src/hci_tool_scan.sh [new file with mode: 0755]
ivi/tts-bluez-tests/tests.xml [new file with mode: 0755]
ivi/tts-connman-tests/ChangeLog [new file with mode: 0755]
ivi/tts-connman-tests/README [new file with mode: 0755]
ivi/tts-connman-tests/bisect.sh [new file with mode: 0755]
ivi/tts-connman-tests/coverage.ods [new file with mode: 0755]
ivi/tts-connman-tests/data/apset.tgz [new file with mode: 0755]
ivi/tts-connman-tests/network.jpg [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/CM_3G_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/cleanup [new file with mode: 0755]
ivi/tts-connman-tests/src/3G/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/CM_BT_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/bluez_simple_agent.py [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/cleanup [new file with mode: 0755]
ivi/tts-connman-tests/src/BT/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Ethernet/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/cleanup [new file with mode: 0755]
ivi/tts-connman-tests/src/Flight/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py [new file with mode: 0755]
ivi/tts-connman-tests/src/MBT/fmbt-20m.conf [new file with mode: 0755]
ivi/tts-connman-tests/src/MBT/fmbt-basic.aal [new file with mode: 0755]
ivi/tts-connman-tests/src/MBT/fmbt-basic.conf [new file with mode: 0755]
ivi/tts-connman-tests/src/MBT/teststeps.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_List.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_State.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_APN.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Domains.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Error.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_MCC.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_MNC.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Mode.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Security.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_State.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Strength.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PS_Type.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PT_Connected.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PT_Powered.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_PT_Type.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_Add.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_List.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Property/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Services.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_State.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_Services.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_State.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Signal/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py [new file with mode: 0755]
ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/cleanup [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/simple-agent [new file with mode: 0755]
ivi/tts-connman-tests/src/WiFi/startup [new file with mode: 0755]
ivi/tts-connman-tests/src/common/SignalBase.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/SignalConnman.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/SignalManager.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/SignalService.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/SignalTechnology.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/bearer.sh [new file with mode: 0755]
ivi/tts-connman-tests/src/common/common.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/config.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/offline.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/property.py [new file with mode: 0755]
ivi/tts-connman-tests/src/common/signal_func.py [new file with mode: 0755]
ivi/tts-connman-tests/tests.xml [new file with mode: 0755]
packaging/common-connectivity-suite.spec [new file with mode: 0755]

diff --git a/LICENSE b/LICENSE
new file mode 100755 (executable)
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.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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.
+
+  <signature of Ty Coon>, 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 (executable)
index 0000000..e001d07
--- /dev/null
@@ -0,0 +1,65 @@
+-----------------------
+ Introduction
+-----------------------
+This suite is to test Bluez stack.
+# Usage for each file (under tts-bluez-tests folder):
+<sub-folder>   <usage>
+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 (executable)
index 0000000..219a5e6
--- /dev/null
@@ -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 (executable)
index 0000000..70d92f0
--- /dev/null
@@ -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 (executable)
index 0000000..7fdee5c
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..7337cf0
Binary files /dev/null and b/ivi/tts-bluez-tests/data/server/.README.swp differ
diff --git a/ivi/tts-bluez-tests/data/server/README b/ivi/tts-bluez-tests/data/server/README
new file mode 100755 (executable)
index 0000000..9076158
--- /dev/null
@@ -0,0 +1,23 @@
+Bluez auto test system server side configuration guide
+
+The only thing you need to do is to start script server_startup.sh in session user.
+$ ./server_startup.sh
+
+When you run the case "bt_panu_setup_check.sh" (the others needn't), you must set up the server firstly.
+$ ./pan_server_setup.sh
+
+
+During the server startup, above script will copy the directory server into
+server_tmp and set obexd root directory to this temporary dirctory.
+
+server/server directory contains the test data prepared for auto test system,
+this includes some pre-created files, sub-directory and one info file contains
+the brief information regarding to file count of a given directory, file md5 string.
+
+auto_accept_agent is one customized BT pairing agent which will accept
+all pairing request automatically, this is one important file which make
+the Bluetooth full automatic test possible.
+
+If you want to stop the server, you can just press Ctrl + C key. After server
+aborted, the temporary directory server_tmp will be removed automatically.
+
diff --git a/ivi/tts-bluez-tests/data/server/auto_accept_agent b/ivi/tts-bluez-tests/data/server/auto_accept_agent
new file mode 100755 (executable)
index 0000000..2347f32
--- /dev/null
@@ -0,0 +1,134 @@
+#!/usr/bin/python
+
+import gobject
+
+import sys
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+from optparse import OptionParser
+
+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 "mytest1Authorize (%s, %s)" % (device, uuid)
+               #authorize = raw_input("Authorize connection (yes/no): ")
+               authorize = 'yes'
+               if (authorize == "yes"):
+                       return
+               raise Rejected("Connection rejected by user")
+
+       @dbus.service.method("org.bluez.Agent",
+                                       in_signature="o", out_signature="s")
+       def RequestPinCode(self, device):
+               print "RequestPinCode (%s)" % (device)
+               #return raw_input("Enter PIN Code: ")
+               return '0000'
+
+       @dbus.service.method("org.bluez.Agent",
+                                       in_signature="o", out_signature="u")
+       def RequestPasskey(self, device):
+               print "RequestPasskey (%s)" % (device)
+               passkey = raw_input("Enter passkey: ")
+               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 "mytest2RequestConfirmation (%s, %d)" % (device, passkey)
+               #confirm = raw_input("Confirm passkey (yes/no): ")
+               confirm = 'yes'
+               if (confirm == "yes"):
+                       return
+               raise Rejected("Passkey doesn't match")
+
+       @dbus.service.method("org.bluez.Agent",
+                                       in_signature="s", out_signature="")
+       def ConfirmModeChange(self, mode):
+               print "mytest3ConfirmModeChange (%s)" % (mode)
+               #authorize = raw_input("Authorize mode change (yes/no): ")
+               authorize = 'yes'
+               if (authorize == "yes"):
+                       return
+               raise Rejected("Mode change by user")
+
+       @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")
+
+       capability = "DisplayYesNo"
+
+       parser = OptionParser()
+       parser.add_option("-c", "--capability", action="store",
+                                       type="string", dest="capability")
+       (options, args) = parser.parse_args()
+       if options.capability:
+               capability  = options.capability
+
+       if len(args) > 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 (executable)
index 0000000..71dd990
--- /dev/null
@@ -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  <zhaojuan.guo@@intel.com>
+# 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 (executable)
index 0000000..84783b6
--- /dev/null
@@ -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 (executable)
index 0000000..9fa880f
Binary files /dev/null and b/ivi/tts-bluez-tests/data/server/server/root_file_1.bmp differ
diff --git a/ivi/tts-bluez-tests/data/server/server/root_file_2.bmp b/ivi/tts-bluez-tests/data/server/server/root_file_2.bmp
new file mode 100755 (executable)
index 0000000..bdf3997
Binary files /dev/null and b/ivi/tts-bluez-tests/data/server/server/root_file_2.bmp differ
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 (executable)
index 0000000..29a7790
--- /dev/null
@@ -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 (executable)
index 0000000..b217664
--- /dev/null
@@ -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 (executable)
index 0000000..28a75f3
--- /dev/null
@@ -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 (executable)
index 0000000..42bdd5f
--- /dev/null
@@ -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 (executable)
index 0000000..9951c07
--- /dev/null
@@ -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 (executable)
index 0000000..112ffdf
--- /dev/null
@@ -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 (executable)
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 (executable)
index 0000000..c190e65
--- /dev/null
@@ -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 (executable)
index 0000000..0aa3856
--- /dev/null
@@ -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  <shuang.wan@intel.com>
+# 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 (executable)
index 0000000..53c550f
--- /dev/null
@@ -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  <shuang.wan@intel.com>
+# 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 (executable)
index 0000000..a7bf485
--- /dev/null
@@ -0,0 +1,77 @@
+-----------------------
+ Introduction
+-----------------------
+This suite is to test Bluez stack.
+# Usage for each file (under tts-bluez-tests folder):
+<sub-folder>   <usage>
+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 (executable)
index 0000000..c55a218
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..020bdf1
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..ec94fdf
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..33ef88d
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..c6865c7
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..426b48f
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..a2b2a4f
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..41badd1
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..c888986
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..79dc70a
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..3c09429
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..eee3fd7
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..8b9c881
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..d6f0f2d
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..f0e0673
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..195298b
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..bac6740
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..cd5fc3b
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..9edabaa
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..d8cc732
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..e2fb652
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..62b18b7
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..e62d402
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..b623c79
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..d4eab24
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..24b900e
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..caa1e85
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..cf3675e
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..1be660a
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..973d0e8
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..04d62c2
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..91163d8
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..c4fe4ec
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..a5352db
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..0d80bd2
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..5caff0e
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..601978b
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..a87e2a5
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..06b08a3
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..812aea0
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..eddd0a9
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..ad667d4
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..120f63f
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..8e46d1e
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..c1beaaf
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..3d9d550
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..8a9a871
--- /dev/null
@@ -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  <jignke.zhang@intel.com>
+# 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 (executable)
index 0000000..4720c6c
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..8291cdf
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..8d98e93
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..b7e8abf
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..dc1ba5d
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..95f6fce
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..5e9d2bd
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..224aac1
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..ccabc78
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..988e253
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..b99d3ce
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..3a12915
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..76e6a05
--- /dev/null
@@ -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  <jingke.zhang@intel.com>
+# 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 (executable)
index 0000000..1072899
--- /dev/null
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<suite name="tts-bluez-tests">\r
+  <set name="device_control">\r
+    <testcase purpose="check bluetoothd daemon running in system" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_daemon_bluetoothd">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>ps -ef | grep bluetoothd\r
+check if system runs bluetoothd daemon in beginning of booting up.</step_desc>\r
+            <expected>when system boots up, it should run bluetoothd daemon.</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_daemon_bluetoothd.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="get local adapter name value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_adapter_get_name">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 name</step_desc>\r
+            <expected>it should get BT device name</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_name.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="check obexd package integration" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_package_obexd">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>rpm -qv obexd\r
+Check if obexd rpm package is installed</step_desc>\r
+            <expected>system should install obexd package</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_obexd.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="get local adapter BT MAC address information" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_get_address">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>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)\r
+2. Find BT MAC address from the output of the command.</step_desc>\r
+            <expected>1. Bluetooth MAC address should be output in pattern, for example, 00:22:69:FB:AA:8A</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_address.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="set local adapter power and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_set_power">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>1. Call DBus API: SetProperty("Powered", &lt;On or Off&gt;) to power on/off the bluetooth adapter.\r
+2. Call DBus API: GetProperties() to get the value of "Powered" property. 1 stands for On, and 0 stands for Off.</step_desc>\r
+            <expected>1. The property value got from DBus call should be same with the value we set.</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_power.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="check bluez package integration" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_package_bluez">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>rpm -qv bluez\r
+Check if the bluez rpm package is installed</step_desc>\r
+            <expected>System should install bluez package.</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_bluez.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="stressfully set power On/Off for 50 times" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_set_stress_power_50times">\r
+      <description>\r
+        <notes />\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>1. Call DBus API: SetProperty("Powered", &lt;boolean value for On/Off&gt;) to power on and power off the adapter for 50 times.\r
+2. Check if the bluetooth device can be powered correctly during the stress process.</step_desc>\r
+            <expected>1. For each execution during the 50 times, adapter power should be correctly On and Off.</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_stress_power_50times.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="set local adapter discoverabletimout and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_set_discoverabletimeout">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 discoverabletimeout 1</step_desc>\r
+            <expected>the hci0 discoverabletimeout could be set to 1</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_discoverabletimeout.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="set local adapter pairable to Off and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_set_pairable_off">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 pairable 0</step_desc>\r
+            <expected>hci0 pairable could be set to 0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_off.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="set local adapter pairable to On and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_adapter_set_pairable_on">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 pairable 0</step_desc>\r
+            <expected>hci0 pairable should be set to 0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_on.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="get local adapter discoverabletimout status value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_get_discoverabletimeout">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 discoverabletimeout</step_desc>\r
+            <expected>it should present discoverabletimeout info.</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_discoverabletimeout.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="get local adapter power status value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_get_power">\r
+      <description>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/lib/bluez/test/test-adapter hci0 power</step_desc>\r
+            <expected>it should get hci0 power status</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_power.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    </set>\r
+  <set name="bluez_command">\r
+     <testcase purpose="hci command to set iscan mode" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_iscan">\r
+      <description>\r
+        <notes>hci command to set iscan mode</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hci command to set adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_name">\r
+      <description>\r
+        <notes>hci command to set adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hci command to check adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_hci_name">\r
+      <description>\r
+        <notes>hci command to check adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hci command to set piscan mode" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_piscan">\r
+      <description>\r
+        <notes>hci command to set piscan mode</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hci command to check device informaton" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_hci_dev">\r
+      <description>\r
+        <notes>hci command to check device informaton</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hci command to get adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_get_name">\r
+      <description>\r
+        <notes>hci command to get adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="hcitool command to scan nearby bluetooth devices" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_tool_scan">\r
+      <description>\r
+        <notes>hcitool command to scan nearby bluetooth devices</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="pair IVI with other BT devices" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_gap_pairing_computer">\r
+      <description>\r
+        <notes>hci command to get adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose=" Check l2cap socket communication using l2ping" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_l2cap_ping_check">\r
+      <description>\r
+        <notes>hci command to get adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+    <testcase purpose="The paired BT device could be remove successfully" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_l2cap_ping_check">\r
+      <description>\r
+        <notes>hci command to get adapter name</notes>\r
+        <pre_condition />\r
+        <post_condition />\r
+        <steps>\r
+          <step order="1">\r
+            <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh</step_desc>\r
+            <expected>0</expected>\r
+          </step>\r
+        </steps>\r
+        <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh</test_script_entry>\r
+      </description>\r
+      <categories>\r
+        <category>IVI</category>\r
+      </categories>\r
+    </testcase>\r
+  </set>\r
+</suite>\r
+\r
diff --git a/ivi/tts-connman-tests/ChangeLog b/ivi/tts-connman-tests/ChangeLog
new file mode 100755 (executable)
index 0000000..30e3009
--- /dev/null
@@ -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 (executable)
index 0000000..97f1810
--- /dev/null
@@ -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 
+  <sub-dir>: 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 (executable)
index 0000000..6ee5391
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# Usage: bisect <good commit> <test case>
+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 (executable)
index 0000000..85ef8c0
Binary files /dev/null and b/ivi/tts-connman-tests/coverage.ods differ
diff --git a/ivi/tts-connman-tests/data/apset.tgz b/ivi/tts-connman-tests/data/apset.tgz
new file mode 100755 (executable)
index 0000000..676c793
Binary files /dev/null and b/ivi/tts-connman-tests/data/apset.tgz differ
diff --git a/ivi/tts-connman-tests/network.jpg b/ivi/tts-connman-tests/network.jpg
new file mode 100755 (executable)
index 0000000..0eae208
Binary files /dev/null and b/ivi/tts-connman-tests/network.jpg differ
diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py b/ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py
new file mode 100755 (executable)
index 0000000..5df904d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d750a4c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9232806
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9deff91
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..09c908c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b3220cd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f3634dc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..eb2e767
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0034ef6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4b94b10
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f1c34f2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b615750
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..88b54b8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..39023f2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b32e45a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..7e04d45
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..50c4b86
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4e8ee45
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..b919507
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..5cd4586
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..94af67b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..853eaf6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..853eaf6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e505713
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3ea61c9
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..fe7efd3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ee162d6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3bc1e6b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..778d5b6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..bb86895
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a7afbba
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..25a0b9d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..cc7cd8e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..55197f3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d5243d6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ef95ee7
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f0e4abd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c8992fa
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e011067
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c65bfe7
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..cf5ac39
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..5460728
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3561c41
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a85f50f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..793a898
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..54b16c3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4e1c138
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b2ee1bd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..497ce79
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ef2d639
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..1e9a40f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3e598e4
--- /dev/null
@@ -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 (executable)
index 0000000..cd01845
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..f1642e0
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..617657f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+*/
+#include <QtTest/QtTest>
+#include <QtNetwork>
+#include <stdlib.h>
+
+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<QNetworkConfiguration> 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<QNetworkConfiguration> 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<QNetworkConfiguration> 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 (executable)
index 0000000..a1e027e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..058269e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b4f15ae
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..928b041
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b608dbf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..43ba7bb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8c8b7e2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..2adc3aa
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..23951cf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ddb62f6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..fb4bff2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..88be67e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e98e5c4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e475962
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..364a600
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..838bbcb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9da3896
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c215490
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..8fa8611
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b96a9c6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a4cccce
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8c66f86
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..28b0932
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d2b2a6b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f914e7e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..5ef87df
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..2ce3a95
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..61a6964
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f3ba7fc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b2be7ba
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a8252f3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..51ac918
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0caa523
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c058aaf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..f1b2385
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..1e79e27
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..d268ee5
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..53200a3
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..4ccd794
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..232642a
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..a8e493a
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..e8510f5
--- /dev/null
@@ -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 <jianghongx.shao@intel.com>
+#
+# 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 (executable)
index 0000000..e0fd3b6
--- /dev/null
@@ -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 (executable)
index 0000000..08f082d
--- /dev/null
@@ -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 (executable)
index 0000000..8d69a24
--- /dev/null
@@ -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 (executable)
index 0000000..a07b965
--- /dev/null
@@ -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 (executable)
index 0000000..176a176
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d09929b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b6235cb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f3d95f3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..90c8fa8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9813152
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d9664cd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..97ea265
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4b6634f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e49cad2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..1c62bd4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..96790f8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6bb7d7a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..12d79fc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0a7a7fa
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..16343f0
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a69302c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..39c76ac
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..589aca2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4655231
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3976fe4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c1ac207
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..015ee25
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..fecceff
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ec3c17a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..27f6702
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..963ab9e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3a3e8c4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a6a8f98
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c9df2cf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c047b00
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3d1071d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..7b3ef7c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0bae9d6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..1eb052c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..df8eeba
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..176a176
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d09929b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b6235cb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f3d95f3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..90c8fa8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9813152
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6a1f09f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..5cca33f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..1a687e7
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ef98875
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8711cfc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4684fec
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9ff7eba
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..10e5ff6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..dafba77
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3199541
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..256e7c4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..9b9714c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6540a49
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4fd0d81
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..154f8dc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..113472e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..256e7c4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..66652a8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0077138
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b7c9c40
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3abe546
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..101255a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..34cc3b9
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..044e774
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..196bbee
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ef9f9b2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..720eb3b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a4524d6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..43b0523
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b6e33ea
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..20fe3db
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..86aaa4e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c058aaf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..f02c056
--- /dev/null
@@ -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 (executable)
index 0000000..0164499
--- /dev/null
@@ -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 (executable)
index 0000000..74dabd8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 <Device On/Off number> ... " % (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 (executable)
index 0000000..77788d5
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 <Flight On/Off number> ... " % (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 (executable)
index 0000000..a5413eb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 <Device On/Off number> ... " % (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 (executable)
index 0000000..2dea46a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..471584f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..901401c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..59ab0ac
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c1bd01d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..57bd28d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..90fe2d5
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3bcc7fd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..09ebebf
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..73f7656
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e1988c3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d5339c2
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6169061
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0a9fa40
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6cb0c96
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..6a891c3
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a117a63
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c5b89c1
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3d83865
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e0d3034
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ae455ae
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..c1bdbeb
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..16f855f
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f0f423e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..cf3f423
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..7564280
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b268c90
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..cb50bbe
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8d9b113
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..78fcf09
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..537ee0e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..2b3bcf7
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..821b750
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..7dd354a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..61304d0
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..df68b62
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4570779
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ef542ae
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f157880
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ecc0cc5
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..ac9d6c1
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..bc31f5b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..eece42a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0810f94
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..7e25b41
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e15c92d
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d20eb22
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4126a0e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a8f1800
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d580541
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8705c0e
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b0c1bb9
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..348af80
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8147d62
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..8d124ec
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..3cd0eca
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e45b0ac
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..17cbb44
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..38a6c76
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..f01c341
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..fc0a8fc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..1022848
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..fb36f7b
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..b4868a8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..0fba50c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..e935fbc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..bc276f6
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..4853a08
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..104ec10
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..da79852
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..cd01845
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..01c82ba
--- /dev/null
@@ -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=<hidden service name> [SSID=<hidden ssid>]" % (sys.argv[0])
+       print "For EAP/WPA input:"
+       print "%s Identity=<identity> Passphrase=<passphrase> WPS=<wpspin>" % (sys.argv[0])
+       print "For WISPr login, L2TP or PPTP input:"
+       print "%s Username=<username> Password=<password>" % (sys.argv[0])
+       print "For OpenConnect input:"
+       print "%s Cookie=<string>" % (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 (executable)
index 0000000..4919b09
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+
+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 (executable)
index 0000000..1e428d8
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..a184a35
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..d36326c
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..64df239
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..62b50cd
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..05fe279
--- /dev/null
@@ -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  <jing.j.wang@intel.com>
+# 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 (executable)
index 0000000..980022a
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..793b493
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..73ab2dc
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..bd6b3e7
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..906eef4
--- /dev/null
@@ -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 <jeff.zheng@intel.com>
+#
+# 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 (executable)
index 0000000..88ba23c
--- /dev/null
@@ -0,0 +1,1178 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<suite name='tts-connman-tests-upstream'>
+  <set name='Launch'>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_Boot' priority='P2' purpose='After system booted  the connmand daemon should be launched' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. boot system
+2. 'ps aux|grep connmand'
+3. check if there is a thread named connmand in background</step_desc>
+            <expected>There should be one thread named connmand in background</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_Boot.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Ethernet' priority='P2' purpose='Check ethernet technology state at the first launch. The State value is different for different platform. Basically it&apos;s &apos;offline&apos; for mobile device like handset and &apos;enabled&apos; for other like netbook and IVI' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. test-manager</step_desc>
+            <expected>In Technologies section, check ethernet State according to followin table
+platform    ethernet State
+Upstream    offline
+Netbook     enabled
+IVI             enabled
+TV             enabled
+handset      offline</expected>
+          </step>
+        </steps>
+      <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Ethernet.py</test_script_entry></description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Offlinemode' priority='P2' purpose='Check if offlinemode is off at the first launch' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. test-manager</step_desc>
+            <expected>OfflineMode is 'false'</expected>
+          </step>
+        </steps>
+      <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Offlinemode.py</test_script_entry></description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_OneConnmand' priority='P2' purpose='there should be no more than one connmand in background' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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_desc>
+            <expected>Step 7 shows there is only one connmand running.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_OneConnmand.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_BT' priority='P2' purpose='After system booted  the bluetoothd daemon should be launched' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. boot system
+2. 'ps aux|grep bluetoothd'
+3. check if there is a thread named bluetoothd in background</step_desc>
+            <expected>There should be one thread named bluetoothd in background</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_BT.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Bluetooth' priority='P2' purpose='Check bluetooth technology state at the first launch. The State value is different for different platform. Basically it&apos;s &apos;offline&apos;.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. test-manager</step_desc>
+            <expected>In Technologies section, check bluetooth State according to followin table
+platform    bluetooth State
+Upstream    offline
+Netbook     offline
+IVI             offline
+TV             offline
+handset      offline</expected>
+          </step>
+        </steps>
+      <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Bluetooth.py</test_script_entry></description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_WiFi' priority='P2' purpose='Check WiFi technology state at the first launch. The State value is different for different platform. Basically it&apos;s &apos;offline&apos; for mobile device like handset and &apos;enabled&apos; for other like netbook and IVI' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. test-manager</step_desc>
+            <expected>In Technologies section, check WiFi State according to followin table
+platform    WiFi State
+Upstream    offline
+Netbook     enabled
+IVI             enabled
+TV             enabled
+handset      offline</expected>
+          </step>
+        </steps>
+      <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_WiFi.py</test_script_entry></description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_WpaSupplicant' priority='P2' purpose='After system booted  the wpa_supplicant daemon should be launched' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. boot system
+2. 'ps aux|grep wpa_supplicant'
+3. check if there is a thread named wpa_supplicant in background</step_desc>
+            <expected>There should be one thread named wpa_supplicant in background</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_WpaSupplicant.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='BT'>
+    <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_IsReEnableWorks' priority='P2' purpose='Check if BT device still works after powered off and powered on' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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 &lt;bt service&gt;
+8. ping PANU server</step_desc>
+            <expected>Can ping PANU server</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsReEnableWorks.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_IsPoweredOn' priority='P2' purpose='Check if BT device is on by default' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Run 'test-manager'
+2. In section Technologies of the output   Check the powered 'State' of bluetooth is 'true'</step_desc>
+            <expected>The powered 'State' of bluetooth is 'true'</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsPoweredOn.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_PoweredOn' priority='P2' purpose='Check if Powered on works for BT' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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'</step_desc>
+            <expected>The value is 'true'</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOn.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_PoweredOff' priority='P2' purpose='Check if we can disable BT technology' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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'</step_desc>
+            <expected>The value is  'false'</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOff.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_DeviceIsExist' priority='P0' purpose='Check if BT device exists' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. test-manager
+2. There is a bluetooth technology</step_desc>
+            <expected>There is bluetooth technology</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_DeviceIsExist.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='WiFiFeature'>
+    <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WS_Open' priority='P1' purpose='Test WiFi for Open mode' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Set AP in Open mode
+2. Connect to the AP</step_desc>
+            <expected>Can get IP and ping the AP</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_Open.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WS_WPA' priority='P1' purpose='Test WiFi for WPA TKIP mode' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Set AP in WPA TKIP mode
+2. Connect to the AP</step_desc>
+            <expected>Can get IP and ping the AP</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_WPA.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WA_RememberPasswd' priority='P1' purpose='Check if ConnMan remember previous password' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>ConnMan should remember the password and can connect to the AP</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_RememberPasswd.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WA_ForgotPassword' priority='P1' purpose='Check if can get error when the connection with password failed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>Error property is set.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_ForgotPassword.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='Property'>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Nameservers' priority='P2' purpose='Test if Nameservers in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Nameservers is not empty</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Nameservers.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Type' priority='P2' purpose='Test if Type in Technology interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Type of the Technology is  in ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular']</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Type.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Powered' priority='P2' purpose='Test if Powered in Technology interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Powered is in [True, False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Powered.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Strength' priority='P2' purpose='Test if Strength in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Strength is 0-100</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Strength.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_SessionMode' priority='P1' purpose='Test if SessionMode property in Manager interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Manager interface
+2. Check if SessionMode property is in  [True  False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_SessionMode.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Security' priority='P2' purpose='Test if Security in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Security is in ['none'  'wep'  'psk'  'ieee8021x'  'wpa'  'rsn']</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Security.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_OfflineMode' priority='P1' purpose='Test if OfflineMode property in Manager interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Manager interface
+2. Check if OfflineMode property is in  [True  False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_OfflineMode.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_State' priority='P0' purpose='Test if State property in Manager interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Manager interface
+2. Check if State property is in  ['online'  'offline'  'connected']</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_State.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Connected' priority='P2' purpose='Test if Connected in Technology interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Connected is in [True, False]</step_desc>
+            <expected>As expected</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Connected.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_AutoConnect' priority='P2' purpose='Test if AutoConnect in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if AutoConnect is in [True  False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_AutoConnect.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Name' priority='P2' purpose='Test if Name in Technology interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Name is in ['Wired', 'WiFi', 'WiMAX', 'Bluetooth', 'Cellular']</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Name.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_State' priority='P2' purpose='Test if State in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if State is in ['ready'  'idle'  'failure'  'association'  'configuration'  'login'  'online']</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_State.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Tethering' priority='P2' purpose='Test if Tethering in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Tethering is in [True, False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Tethering.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Type' priority='P2' purpose='Test if Type in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Type of the service is 'WiFi'</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Type.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Domains' priority='P2' purpose='Test if Domains in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Domains is not empty</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Domains.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Error' priority='P2' purpose='Test if Error in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Error is not in properties since Guest connect always success</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Error.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Name' priority='P2' purpose='Test if Name in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Name is  'Guest'</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Name.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Favorite' priority='P2' purpose='Test if Favorite in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Favorite is in [True  False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Favorite.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Immutable' priority='P2' purpose='Test if Immutable in Service interface is valid.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get Guest service
+2. Check if Immutable is in [True  False]</step_desc>
+            <expected>:</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Immutable.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='Ethernet'>
+    <testcase component='Networking/Connman/Ethernet' execution_type='auto' id='CM_Eth_DeviceIsExist' priority='P0' purpose='Check if ethernet device exists' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>There is ethernet device</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Eth_DeviceIsExist.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='WiFi'>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_Disconnect' priority='P2' purpose='Check if we can disconnet Guest WiFi network' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Make sure there is Guest WiFi network
+2. Powered off the device
+3. Check if we can ping Guest WiFi network</step_desc>
+            <expected>Ping cannot receive any response.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_Disconnect.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_SmallBroadcastPing' priority='P2' purpose='Check if can broadcast with small packet for WiFi device' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. connect-service Guest
+2. Get Guest WiFi IP address (ifconfig or list-service)
+3. ping -c 5 -s 64 &lt;AP address&gt;</step_desc>
+            <expected>Receives ping response.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_SmallBroadcastPing.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_PoweredOff' priority='P2' purpose='Check if Powered off works for WiFi device' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>"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'</step_desc>
+            <expected>The value is  'false'</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOff.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_IsReEnableWorks' priority='P2' purpose='Check if WiFi device still works after powered off and powered on' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>ping response</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsReEnableWorks.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_IsPoweredOn' priority='P2' purpose='Check if WiFi device is on by default' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. Get the Powered status of WiFi device
+2. Check the Powered status is On</step_desc>
+            <expected>The Powered status is on</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsPoweredOn.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_PoweredOn' priority='P2' purpose='Check if Powered on works for WiFi device' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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'</step_desc>
+            <expected>The value is 'true'</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOn.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_BigBroadcastPing' priority='P1' purpose='Check if we can ping Guest WiFi nework through broadcast' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>1. connect-service Guest
+2. Get Guest WiFi IP address (ifconfig or list-service)
+3. ping -c 5 -s 1400 &lt;AP address&gt;</step_desc>
+            <expected>Ping will receive response.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_BigBroadcastPing.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_DeviceIsExist' priority='P0' purpose='Check if WiFi device exists' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>There is WiFi device</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_DeviceIsExist.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='State'>
+    <testcase component='Networking/Connman/State' execution_type='auto' id='CM_State_WIFI_AvialableAP' priority='P2' purpose='WIFI service should be &apos;online&apos; when connect to an WIFI AP that can surf internet.' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>The state should be 'online' for this connected WIFI AP.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_State_WIFI_AvialableAP.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+  <set name='Signal'>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_IPv4' priority='P2' purpose='Check if signal is triggered through Service interface when IPv4 property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_IPv4.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_Favorite' priority='P2' purpose='Check if Service signal is triggered when Favorite property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_Favorite.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_IPv4' priority='P2' purpose='Check if signal is triggered when IPv4property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_IPv4.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_Favorite' priority='P2' purpose='Check if signal is triggered when Favorite property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Favorite.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_AutoConnect' priority='P2' purpose='Check if signal is triggered when AutoConnect property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_AutoConnect.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_State' priority='P2' purpose='Check if signal is triggered when State property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_State.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+       <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_Connected' priority='P2' purpose='Check if signal is triggered when ConnectedTechnologies property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Connected.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_OfflineMode' priority='P2' purpose='Check if signal is triggered when OfflineMode property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_OfflineMode.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+    <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SM_State' priority='P2' purpose='Check if Manager signal is triggered through Manager interface when State property changed' status='approved' type='functional_positive'>
+      <description>
+        <pre_condition/>
+        <post_condition/>
+        <steps>
+          <step order='1'>
+            <step_desc>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.</step_desc>
+            <expected>The callback function is called.</expected>
+          </step>
+        </steps>
+        <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SM_State.py</test_script_entry>
+      </description>
+      <categories>
+        <category>Mobile</category>
+        <category>Netbook</category>
+        <category>IVI</category>
+        <category>TV</category>
+      </categories>
+    </testcase>
+  </set>
+</suite>
diff --git a/packaging/common-connectivity-suite.spec b/packaging/common-connectivity-suite.spec
new file mode 100755 (executable)
index 0000000..fc6246a
--- /dev/null
@@ -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<daweix.wu@intel.com> 0.1.0-1
+ - Initial common connectivity suite test
+