From: zhang xiaolei Date: Mon, 9 Jun 2014 11:33:22 +0000 (+0800) Subject: tizen ivi connectivity suite initial release X-Git-Tag: submit/tizen/20140609.122908^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F85%2F22585%2F1;p=test%2Fcommon%2Fcommon-connectivity-suite.git tizen ivi connectivity suite initial release Change-Id: I46a5b0ca30784b404aa924a8092a86c51d05f948 Signed-off-by: zhang xiaolei --- 3be5294995f9119ee16833ecbff0fd55fc37b3d3 diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..6d45519 --- /dev/null +++ b/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ivi/tts-bluez-tests/README b/ivi/tts-bluez-tests/README new file mode 100755 index 0000000..e001d07 --- /dev/null +++ b/ivi/tts-bluez-tests/README @@ -0,0 +1,65 @@ +----------------------- + Introduction +----------------------- +This suite is to test Bluez stack. +# Usage for each file (under tts-bluez-tests folder): + +src source file of the cases +data/client shared scripts and data on the client side for testing +data/server entire folder should be copied to server machine. + Run server_startup.sh on the server to set up + a daemon to communicate with Client. + +# Needed package/command +pygobject --- python binding for gobject used by pairing script + data/client/auto_accept_agent +md5sum --- to check the file consistence after FTP transfering. +bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part) +When PANU case is running, server should install bridge-utils to create a network bridge as PAN server. + +----------------------- +Install and Run +----------------------- + (if you don't have testkit-lite, you can get it from https://github.com/testkit/testkit-lite) +Steps: +precondition: We need to use two machine, one is server and another is your testing machine as client. + Setup Server environment by three steps as "Test Environment" describe (Please see next section) + Then, rest steps are on testing machine; bluez-test package is needed on testing machine. +Build case: + +1. rpm -ivh tts-bluez-tests-0.1.0-1.i386.rpm --- install RPM to your testing machine + +To run cases, you can either do step.2 or step.3 +2. cd /usr/share/tests/common-connectivity-suite/tts-bluez-tests and run any sh file by root account. +3. testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-bluez-tests/tests.xml --comm localhost -o ./results.xml + + + +----------------------- +Test Environment +----------------------- +1. Setup Server daemon (recommend to use ubuntu-12.04 system) + copy tts-bluez-tests/data/server folder to server machine to /home/USER, run ./bt_pan_server_setup.sh as root to enable PAN server, then run ./server_startup.sh as normal user to enable agent for pairing and OBEX server. + +2. Do confirm your client machine has no old pairing with the server machine, or it will + affect most of the cases. + +3. [On client] install bluez-test package on client, config the environment file: data/client/bluetooth_env: +DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/ +AUTO_AGENT --- the place for agent which used for pairing +SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81" + +4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user. + +----------------------- +Known Issues +----------------------- +For server setup, do please use ubuntu-12.04 system, because: +* Fedora does not contain OBEX. +* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug) +Do please use "su -" to switch to root account for validation. +Note: you can report the defects of this test suite to jingke.zhang@intel.com + +----------------------- +TODO +----------------------- diff --git a/ivi/tts-bluez-tests/data/client/README b/ivi/tts-bluez-tests/data/client/README new file mode 100755 index 0000000..219a5e6 --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/README @@ -0,0 +1,24 @@ +Bluez auto test system client side configuration guide + +1. Set the server's BT mac address in bluetooth_env.sh + +2. Set the root password in bluetooth_env.sh + +3. Files brief info +auto_accept_agent +# A pairing agent + +bluetooth_env +# test environmnet file + +ftp-client +# ftp client tool + +su_normal_do.sh +# execute something in normal user + +sudo_l2ping.sh +# execute l2ping in root user + +sudo_rm.sh +# execute rm file in root user diff --git a/ivi/tts-bluez-tests/data/client/auto_accept_agent b/ivi/tts-bluez-tests/data/client/auto_accept_agent new file mode 100755 index 0000000..70d92f0 --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/auto_accept_agent @@ -0,0 +1,189 @@ +#!/usr/bin/python + +from __future__ import absolute_import, print_function, unicode_literals + +from gi.repository import GObject + +import sys +import dbus +import dbus.service +import dbus.mainloop.glib +from optparse import OptionParser +BLUE_TEST="/usr/lib/bluez/test" +if not BLUE_TEST in sys.path: + sys.path.append(BLUE_TEST) + +import bluezutils + +BUS_NAME = 'org.bluez' +AGENT_INTERFACE = 'org.bluez.Agent1' +AGENT_PATH = "/test/agent" + +bus = None +device_obj = None +dev_path = None + +def ask(prompt): + try: + return raw_input(prompt) + except: + return input(prompt) + +def set_trusted(path): + props = dbus.Interface(bus.get_object("org.bluez", path), + "org.freedesktop.DBus.Properties") + props.Set("org.bluez.Device1", "Trusted", True) + +def dev_connect(path): + dev = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device1") + dev.Connect() + +class Rejected(dbus.DBusException): + _dbus_error_name = "org.bluez.Error.Rejected" + +class Agent(dbus.service.Object): + exit_on_release = True + + def set_exit_on_release(self, exit_on_release): + self.exit_on_release = exit_on_release + + @dbus.service.method(AGENT_INTERFACE, + in_signature="", out_signature="") + def Release(self): + print("Release") + if self.exit_on_release: + mainloop.quit() + + @dbus.service.method(AGENT_INTERFACE, + in_signature="os", out_signature="") + def AuthorizeService(self, device, uuid): + print("AuthorizeService (%s, %s)" % (device, uuid)) + #authorize = ask("Authorize connection (yes/no): ") + authorize = 'yes' + if (authorize == "yes"): + return + raise Rejected("Connection rejected by user") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="s") + def RequestPinCode(self, device): + print("RequestPinCode (%s)" % (device)) + set_trusted(device) + #return ask("Enter PIN Code: ") + return '0000' + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="u") + def RequestPasskey(self, device): + print("RequestPasskey (%s)" % (device)) + set_trusted(device) + passkey = ask("Enter passkey: ") + return dbus.UInt32(passkey) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="ouq", out_signature="") + def DisplayPasskey(self, device, passkey, entered): + print("DisplayPasskey (%s, %06u entered %u)" % + (device, passkey, entered)) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="os", out_signature="") + def DisplayPinCode(self, device, pincode): + print("DisplayPinCode (%s, %s)" % (device, pincode)) + + @dbus.service.method(AGENT_INTERFACE, + in_signature="ou", out_signature="") + def RequestConfirmation(self, device, passkey): + print("RequestConfirmation (%s, %06d)" % (device, passkey)) + #confirm = ask("Confirm passkey (yes/no): ") + confirm = 'yes' + if (confirm == "yes"): + set_trusted(device) + return + raise Rejected("Passkey doesn't match") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="o", out_signature="") + def RequestAuthorization(self, device): + print("RequestAuthorization (%s)" % (device)) + #auth = ask("Authorize? (yes/no): ") + auth = 'yes' + if (auth == "yes"): + return + raise Rejected("Pairing rejected") + + @dbus.service.method(AGENT_INTERFACE, + in_signature="", out_signature="") + def Cancel(self): + print("Cancel") + +def pair_reply(): + print("Device paired") + set_trusted(dev_path) + dev_connect(dev_path) + mainloop.quit() + +def pair_error(error): + err_name = error.get_dbus_name() + if err_name == "org.freedesktop.DBus.Error.NoReply" and device_obj: + print("Timed out. Cancelling pairing") + device_obj.CancelPairing() + else: + print("Creating device failed: %s" % (error)) + + + mainloop.quit() + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + + capability = "KeyboardDisplay" + + parser = OptionParser() + parser.add_option("-i", "--adapter", action="store", + type="string", + dest="adapter_pattern", + default=None) + parser.add_option("-c", "--capability", action="store", + type="string", dest="capability") + parser.add_option("-t", "--timeout", action="store", + type="int", dest="timeout", + default=60000) + (options, args) = parser.parse_args() + if options.capability: + capability = options.capability + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = GObject.MainLoop() + + obj = bus.get_object(BUS_NAME, "/org/bluez"); + manager = dbus.Interface(obj, "org.bluez.AgentManager1") + manager.RegisterAgent(path, capability) + + print("Agent registered") + + # Fix-up old style invocation (BlueZ 4) + if len(args) > 0 and args[0].startswith("hci"): + options.adapter_pattern = args[0] + del args[:1] + + if len(args) > 0: + device = bluezutils.find_device(args[0], + options.adapter_pattern) + dev_path = device.object_path + agent.set_exit_on_release(False) + device.Pair(reply_handler=pair_reply, error_handler=pair_error, + timeout=60000) + device_obj = device + else: + manager.RequestDefaultAgent(path) + + mainloop.run() + + #adapter.UnregisterAgent(path) + #print("Agent unregistered") diff --git a/ivi/tts-bluez-tests/data/client/bluetooth_env b/ivi/tts-bluez-tests/data/client/bluetooth_env new file mode 100755 index 0000000..7fdee5c --- /dev/null +++ b/ivi/tts-bluez-tests/data/client/bluetooth_env @@ -0,0 +1,140 @@ +#!/bin/sh +# +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Set environment variable here to specify the BT autotest server's MAC address +SERV_BD_ADDR="00:0A:94:03:EC:CD" +# Server type, we support "computer", "headset", "phone" and "keyboard or mouse" here. +SERV_BD_TYPE="computer" +tmp_file="tmp" +tmp1_file="tmp1" + +DATA_DIR="/usr/lib/bluez/test" +AUTO_AGENT="./data" +user=`whoami` +if [ "${user}" = "root" ]; then + AGENT="${DATA_DIR}/simple-agent" + FTP_CLIENT="${DATA_DIR}/ftp-client" + PBAP_CLIENT="${DATA_DIR}/pbap-client" + TEST_ADAPTER="${DATA_DIR}/test-adapter" + TEST_DEVICE="${DATA_DIR}/test-device" + TEST_DISCOVER="${DATA_DIR}/test-discovery" + HCICONFIG="hciconfig" + KILLPANEL="killall dawati-panel-bluetooth" + KILLAGENT="killall bluetooth-agent" +else + AGENT="sudo ${DATA_DIR}/simple-agent" + FTP_CLIENT="sudo ${DATA_DIR}/ftp-client" + PBAP_CLIENT="sudo ${DATA_DIR}/pbap-client" + TEST_ADAPTER="sudo ${DATA_DIR}/test-adapter" + TEST_DEVICE="sudo ${DATA_DIR}/test-device" + TEST_DISCOVER="sudo ${DATA_DIR}/test-discovery" + HCICONFIG="sudo hciconfig" + KILLPANEL="sudo killall dawati-panel-bluetooth" + KILLAGENT="sudo killall bluetooth-agent" +fi + +killall simple-agent > /dev/null 2>&1 +TEST_NAME_STRING="default" +TEST_TEXT_FILE="${DATA_DIR}/text_file_512k" +export PATH=$PATH:/sbin/:/usr/sbin/:./data/ +adapter="hci0" +# export DISPLAY=:0.0 + +# By this function, it can make sure adapter is available and status is UP. +function adapter_init() +{ + local first_adapter=`$HCICONFIG | grep -o "^hci[0-9]" | sed -n '1p'` + local ret=0 + + if [ -z "${first_adapter}" ]; then + echo "[Critical] No adaptor found!" + exit 1 + elif [ "${adapter}" != "${first_adapter}" ]; then + adapter=${first_adapter} + fi + + if $HCICONFIG | grep "DOWN" > /dev/null ; then + ${HCICONFIG} ${adapter} up + connmanctl enable bluetooth + ret=$? + fi + return $ret +} +function BT_discover() +{ + local ret=0 + for in in `seq 5` + do + timeout 30 ${TEST_DISCOVER} >& /tmp/bt_device_list + cat /tmp/bt_device_list | grep $SERV_BD_ADDR + ret=$? + if [ $ret -eq 0 ] + then + break + fi + done + if [ $ret -ne 0 ] + then + echo 'BT discover fail' + exit 1 + fi + return $ret +} +function auto_pair() +{ + local ret=0 + ${TEST_DEVICE} remove $SERV_BD_ADDR > /dev/null 2>&1 + BT_discover + ${AUTO_AGENT}/auto_accept_agent hci0 $SERV_BD_ADDR + ret=$? + if [ ${ret} -ne 0 ]; then + echo "[FAIL] auto pairing failed!" + exit ${ret} + fi +} + +function agent_setup() +{ + # on netbook, dawati-panel-bluetooth contains agent + local bt_panel=`ps -ef | grep dawati-panel-bluetooth | wc -l` + local bt_agent=`ps -ef | grep bluetooth-agent | wc -l` + + if [ "${bt_panel}" -eq 2 ]; then + # System has dawati-panel-bluetooth process, we restart it + ${KILLPANEL} > /dev/null + # after killall, system will automatically restart the panel + elif [ "${bt_agent}" -eq 2 ]; then + # We need to kill bluetooth-agent firstly + ${KILLAGENT} > /dev/null + # Start our agent + ${AUTO_AGENT}/auto_accept_agent hci0 & + else + # No such a panel, we can setup agent + ${AUTO_AGENT}/auto_accept_agent hci0 & + fi + + sleep 2 +} diff --git a/ivi/tts-bluez-tests/data/server/.README.swp b/ivi/tts-bluez-tests/data/server/.README.swp new file mode 100755 index 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 index 0000000..9076158 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/README @@ -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 index 0000000..2347f32 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/auto_accept_agent @@ -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 index 0000000..71dd990 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/bt_pan_server_setup.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Guo, Zhaojuan +# Date Created: 2010/12/02 +# +# Modifications: +# Modificator Date +# Content of Modification + +# DESC:build pan server envieroment + +brctl addbr pan1 + +ifconfig pan1 192.168.0.1 + +echo 1 > /proc/sys/net/ipv4/ip_forward + +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE + +iptables -A FORWARD -i pant1 -j ACCEPT + diff --git a/ivi/tts-bluez-tests/data/server/gather_info.sh b/ivi/tts-bluez-tests/data/server/gather_info.sh new file mode 100755 index 0000000..84783b6 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/gather_info.sh @@ -0,0 +1 @@ +find . | xargs file | grep -v directory | awk '{print $1}' | sed 's/://g' | xargs md5sum | awk '{print $2" , "$1}' diff --git a/ivi/tts-bluez-tests/data/server/server/root_file_1.bmp b/ivi/tts-bluez-tests/data/server/server/root_file_1.bmp new file mode 100755 index 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 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 index 0000000..29a7790 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/root_file_3.txt @@ -0,0 +1 @@ +Bluetooth test automation test file 3. \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server/server_info b/ivi/tts-bluez-tests/data/server/server/server_info new file mode 100755 index 0000000..b217664 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/server_info @@ -0,0 +1,18 @@ +dir_count root 3 +dir_count subdir1 0 +dir_count subdir2 0 +dir_count subdir3 0 +file_count root 3 +file_count subdir1 2 +file_count subdir2 2 +file_count subdir3 2 +file_info root_file_1.bmp 5fc73cdae0cd26443a1a33f9d7e82fa4 +file_info subdir1/subdir1_test_file2.txt 550c58665e01733318fc82f802ae8b38 +file_info subdir1/subdir1_test_file1.txt 838d95ab225a57b134bcaf5a2ca0a38e +file_info subdir3/subdir3_test_file2.txt b97a64574c2990b64052659a1dfa3b59 +file_info subdir3/subdir3_test_file1.txt d41d8cd98f00b204e9800998ecf8427e +file_info root_file_3.txt 773ad21b18f8779f953208ec6fb8256b +file_info server_info d41d8cd98f00b204e9800998ecf8427e +file_info root_file_2.bmp 2223b8d830acc1b149d30bbfa1016018 +file_info subdir2/subdir2_test_file2.txt 7460ddc4d60c0260184fea8b5ca6ca07 +file_info subdir2/subdir2_test_file1.txt 531035c7a4a45889f1f6d5c199fee73c diff --git a/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt new file mode 100755 index 0000000..28a75f3 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file1.txt @@ -0,0 +1,2328 @@ +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 +subdir1_test_file1 diff --git a/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt new file mode 100755 index 0000000..42bdd5f --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir1/subdir1_test_file2.txt @@ -0,0 +1,1530 @@ +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt +bluetooth test automation meta file: subdir1_test_file2.txt diff --git a/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt new file mode 100755 index 0000000..9951c07 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file1.txt @@ -0,0 +1,2220 @@ +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt +Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt + + diff --git a/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt new file mode 100755 index 0000000..112ffdf --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir2/subdir2_test_file2.txt @@ -0,0 +1 @@ +Oh, I am a small file:) \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file1.txt new file mode 100755 index 0000000..e69de29 diff --git a/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt new file mode 100755 index 0000000..c190e65 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server/subdir3/subdir3_test_file2.txt @@ -0,0 +1,48 @@ +Bluetooth test automation sample file: subdir3_test_file2.txt +dsfasf +asdfjasdf'asd +fads +fasdfadsjfas'dfk +dsf;las +dflas +fasldf4rjzsd'fks +DF +asdfas +asdfasdf +asdfasdf +adsf +as +df +asdf +as +df +asdf +as +rt34 +rads + +zxc +vzx +f +ewf +32 +a +d +fas +f +as +r3 +ra +sdf +as +df +as +f +t6 +dfgsd +fgh + +h[pasfkas;fASdfj +32-o +SDl'jbkll +e# \ No newline at end of file diff --git a/ivi/tts-bluez-tests/data/server/server_cleanup.sh b/ivi/tts-bluez-tests/data/server/server_cleanup.sh new file mode 100755 index 0000000..0aa3856 --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server_cleanup.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Wan Shuang +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification + +agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'` + +if [ -n "$agent_pid" ]; then + kill -KILL $agent_pid + echo "Pairing agent released" +fi + +rm server_tmp -rf +echo "Temporary directory server_tmp for file transfer test has been removed." + diff --git a/ivi/tts-bluez-tests/data/server/server_startup.sh b/ivi/tts-bluez-tests/data/server/server_startup.sh new file mode 100755 index 0000000..53c550f --- /dev/null +++ b/ivi/tts-bluez-tests/data/server/server_startup.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# Copyright (C) 2010, Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Wan Shuang +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +set -x +obexd_pid=`ps aux | grep obexd | grep -v grep | awk '{print $2}'` + +echo "obexd_pid: $obexd_pid" + +if [ -n "$obexd_pid" ]; then + kill -KILL $obexd_pid +fi + +agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'` + +if [ -z "$agent_pid" ]; then + echo "Auto accpet pairing agent is starting..." + ./auto_accept_agent hci0 & +fi + +rm server_tmp -rf +cp server server_tmp -raf + +trap './server_cleanup.sh' INT +export DISPLAY=:0.0 +echo "Start the obexd daemon" + +# This is only for obexd-server > 0.42 version. +/usr/lib/obexd/obexd -n -d -a `pwd`/server +# The obexd may be installed in directory in /usr/lib/obex +# if so, please use bellow command to start obexd +#/usr/lib/obexd/obexd -n -d -a -f -o -r `pwd`/server_tmp diff --git a/ivi/tts-bluez-tests/src/README b/ivi/tts-bluez-tests/src/README new file mode 100755 index 0000000..a7bf485 --- /dev/null +++ b/ivi/tts-bluez-tests/src/README @@ -0,0 +1,77 @@ +----------------------- + Introduction +----------------------- +This suite is to test Bluez stack. +# Usage for each file (under tts-bluez-tests folder): + +src source file of the cases +data/client shared scripts and data on the client side for testing +data/server entire folder should be copied to server machine. + Run server_startup.sh on the server to set up + a daemon to communicate with Client. + +# Needed package/command +gcc make --- common packages for make +pygobject --- python binding for gobject used by pairing script + data/client/auto_accept_agent +rpm-build --- for packaging +md5sum --- to check the file consistence after FTP transfering. +bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part) +When PANU case is running, server should install bridge-utils to create a network bridge as PAN server. + +----------------------- +Build and Run +----------------------- +(Suppose you only get the source code and testrunner-lite has been setup on your test machine + if you have got tts-bluez-tests RPM, you can directly go to step.4 on testing machine + if you have not installed the testrunner, you can follow the README of framework) +Steps: +1. We need to use two machine, one is server and another is your testing machine as client. + Setup Server environment by three steps as "Test Environment" describe (Please see next section) + Then, rest steps are on testing machine +2. cd tts-bluez-tests +3. sh pack.sh --- It will make and generate the tts-bluez-tests RPM +4. rpm -ivh tts-bluez-tests-1.0.0-1.i386.rpm --- install RPM to your testing machine + +To run cases, you can either do step.5 or step.6 +5. cd /opt/tts-bluez-tests/ and run any sh file by root account. +6. (if you use testkit-lite tool) testrunner-lite -f /usr/share/tts-bluez-tests/tests.xml -o /tmp/results.xml + + +----------------------- +Common Install +----------------------- +./autogen +./configure prefix=/usr +make && make install + + +----------------------- +Test Environment +----------------------- +1. Setup Server daemon (Strongly recommend to use ubuntu-10.04 system) + copy tts-bluez-tests/data/server folder to server machine, run ./bt_pan_server_setup.sh to enable PAN server, + then run ./server_startup.sh to enable OBEX server. + +2. Do confirm your client machine has no old pairing with the server machine, or it will + affect most of the cases. + +3. [On client] Config the environment file on client, the file is data/client/bluetooth_env: +DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/ +SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81" + +4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user. + +----------------------- +Known Issues +----------------------- +For server setup, do please use ubuntu-10.04 system, because: +* Fedora does not contain OBEX. +* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug) +* You can use Tizen image to be BT OBEX server, however, it cannot be PAN server, for it does not have bridge-utils. +Do please use "su -" to switch to root account for validation. +Note: you can report the defects of this test suite to jingke.zhang@intel.com + +----------------------- +TODO +----------------------- diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh new file mode 100755 index 0000000..c55a218 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_address.sh @@ -0,0 +1,43 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's MAC address. +mac_addr=`${TEST_ADAPTER} address` + +if [ -z "$mac_addr" ]; then + echo "[FAIL] No Bluetooth Adapter MAC address is found" + ret=1 +else + echo "[PASS] Bluetooth MAC address is: $mac_addr" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh new file mode 100755 index 0000000..020bdf1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_discoverabletimeout.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's discoverabletimeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout` + +if [ -z "$discover_timeout" ]; then + echo "[FAIL] No Bluetooth Adapter discoverabletimeout is found" + ret=1 +else + echo "[PASS] Bluetooth discoverabletimeout is: $discover_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh new file mode 100755 index 0000000..ec94fdf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_discovering.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's discovering status, 0 for Not discovering, +# 1 for adapter is in discovering. +hcitool scan > /dev/null & +discovering=`${TEST_ADAPTER} discovering` + +if [ $discovering -ne 1 ]; then + echo "[FAIL] Bluetooth Adapter is in discovering, but discovering status is: $discovering" + ret=1 +else + echo "[PASS] Bluetooth Adapter is in discovering, status is: 1" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh new file mode 100755 index 0000000..33ef88d --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_pairabletimeout.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's pairabletimeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout` + +if [ -z "$pair_timeout" ]; then + echo "[FAIL] No Bluetooth Adapter pairabletimeout is found" + ret=1 +else + echo "[PASS] Bluetooth Adapter pairabletimeout is: $pair_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh b/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh new file mode 100755 index 0000000..c6865c7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_get_power.sh @@ -0,0 +1,44 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's powered status. +power=`${TEST_ADAPTER} powered` + +if [ -z "$power" ]; then + echo "[FAIL] No Bluetooth Adapter power status is found" + ret=1 +else + echo "[PASS] Bluetooth Adapter power status is: $power (0 for OFF, 1 for ON)" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_scan.sh b/ivi/tts-bluez-tests/src/bt_adapter_scan.sh new file mode 100755 index 0000000..426b48f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_scan.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Get local hci0's MAC address. +killall ${TEST_DISCOVER} > /dev/null 2>&1 +${TEST_DISCOVER} > ${tmp_file} & +sleep 3 +killall ${TEST_DISCOVER} > /dev/null 2>&1 +num=`wc -l ${tmp_file}` + +if [ ${num} -lt 11 ]; then + echo "[FAIL] No Bluetooth Device is discoverred or your adapter bt scan fail" + ret=1 +else + echo "[PASS] Bluetooth Device discover successfully." +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh new file mode 100755 index 0000000..a2b2a4f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_off.sh @@ -0,0 +1,55 @@ +#!/bin/sh +#DESCR: Check to get discoverable status to Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to no-pscan and no-iscan +${TEST_ADAPTER} discoverable on +$HCICONFIG $adapter iscan +sleep 2 + +iscan=`${TEST_ADAPTER} discoverable` +[ $iscan -eq 0 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1 + +# Set discoverable scan for the adapter +${TEST_ADAPTER} discoverable off + +# get power status +iscan=`${TEST_ADAPTER} discoverable` + +if [ ${iscan} -eq 0 ]; then + echo "[PASS] Adapter discoverable is Off now" +else + echo "[FAIL] Adapter discoverable is still On" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh new file mode 100755 index 0000000..41badd1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverable_on.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get discoverable status to On for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to no-pscan and no-iscan +$HCICONFIG $adapter noscan + +iscan=`${TEST_ADAPTER} discoverable` +[ $iscan -eq 1 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1 + +# Set discoverable scan for the adapter +${TEST_ADAPTER} discoverable on + +# get power status +iscan=`${TEST_ADAPTER} discoverable` + +if [ ${iscan} -eq 1 ]; then + echo "[PASS] Adapter discoverable is ON" +else + echo "[FAIL] Adapter discoverable is still OFF" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh new file mode 100755 index 0000000..c888986 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_discoverabletimeout.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +timeout=100 + +# Set local hci0's discoverabletimeout to $timeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout $timeout` + +# Get local hci0's discoverabletimeout. +discover_timeout=`${TEST_ADAPTER} discoverabletimeout` + +if [ $discover_timeout -ne $timeout ]; then + echo "[FAIL] Bluetooth Adapter discoverabletimeout should be set to $timeout, but it is: $discover_timeout" + ret=1 +else + echo "[PASS] Bluetooth discoverabletimeout is set to: $discover_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh new file mode 100755 index 0000000..79dc70a --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_off.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get pairable status to Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# By $HCICONFIG, set to pscan On +echo "Initialize to set pairable On" +${TEST_ADAPTER} pairable on + +pair=`${TEST_ADAPTER} pairable` +[ $pair -eq 0 ] && echo "[FAIL] fail to set pscan On" && exit 1 + +# Set pairable scan for the adapter +${TEST_ADAPTER} pairable off + +# get power status +pair=`${TEST_ADAPTER} pairable` + +if [ ${pair} -eq 0 ]; then + echo "[PASS] Adapter pairable is Off now" +else + echo "[FAIL] Adapter pairable is still On" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh new file mode 100755 index 0000000..3c09429 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairable_on.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get pairable status to On for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Set pairable to Off +${TEST_ADAPTER} pairable off +pair=`${TEST_ADAPTER} pairable` +[ $pair -eq 1 ] && echo "[FAIL] pairable cannot be initialized to Off" && exit 1 + +# Set pairable scan for the adapter +${TEST_ADAPTER} pairable on + +# get power status +pair=`${TEST_ADAPTER} pairable` + +if [ ${pair} -eq 1 ]; then + echo "[PASS] Adapter pairable is ON" +else + echo "[FAIL] Adapter pairable is still OFF" + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh new file mode 100755 index 0000000..eee3fd7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_pairabletimeout.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +timeout=100 + +# Set local hci0's pairabletimeouttimeout to $timeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout $timeout` + +# Get local hci0's pairabletimeouttimeout. +pair_timeout=`${TEST_ADAPTER} pairabletimeout` + +if [ $pair_timeout -ne $timeout ]; then + echo "[FAIL] Bluetooth Adapter pairabletimeout should be set to $timeout, but it is: $pair_timeout" + ret=1 +else + echo "[PASS] Bluetooth pairabletimeout is set to: $pair_timeout" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh new file mode 100755 index 0000000..8b9c881 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_power.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check to get power status to On/Off for the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 + +# Assume the bluetooth power is On before testing. +${TEST_ADAPTER} powered off + +# get power status +power=`${TEST_ADAPTER} powered` + +if [ ${power} -eq 0 ]; then + echo "[PASS] Adapter power is OFF" +else + echo "[FAIL] Adapter power is still ON, fail to power off hci0" + ret=1 +fi + +${TEST_ADAPTER} powered on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh new file mode 100755 index 0000000..d6f0f2d --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_discoverable_50times.sh @@ -0,0 +1,58 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # Make adapter discoverable off and check + ${TEST_ADAPTER} discoverable off + discover=`${TEST_ADAPTER} discoverable` + + if [ ${discover} -eq 1 ]; then + echo "[FAIL] Adapter discoverable is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # Make adapter discoverable on and prepare for next off + ${TEST_ADAPTER} discoverable on +done + +${TEST_ADAPTER} discoverable on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh new file mode 100755 index 0000000..f0e0673 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_pairable_50times.sh @@ -0,0 +1,58 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # Make adapter pairable off and check + ${TEST_ADAPTER} pairable off + pair=`${TEST_ADAPTER} pairable` + + if [ ${pair} -eq 1 ]; then + echo "[FAIL] Adapter pairable is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # Make adapter pairable on and prepare for next off + ${TEST_ADAPTER} pairable on +done + +${TEST_ADAPTER} pairable on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh new file mode 100755 index 0000000..195298b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_adapter_set_stress_power_50times.sh @@ -0,0 +1,61 @@ +#!/bin/sh +#DESCR: Stressly test to get adapter power status to On/Off for 50 times. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +ret=0 +i=0 + +while [ $i -lt 50 -a $ret -ne 1 ]; +do + # check power status, if not ON, exit test. + [ `${TEST_ADAPTER} powered` -eq 0 ] && "[FAIL] initial power is off" && ret=1 + + # Power off adapter and check + ${TEST_ADAPTER} powered off + power=`${TEST_ADAPTER} powered` + + if [ ${power} -eq 1 ]; then + echo "[FAIL] Adapter power is still ON, $i trial FAIILs!" + ret=1 + else + trials=`expr $i + 1` + if [ `expr $trials % 10` -eq 0 ]; then + echo "[PASS] Finish ${trials} trial." + fi + fi + + i=`expr $i + 1` + + # power on the adapter and prepare for next off + ${TEST_ADAPTER} powered on +done + +${TEST_ADAPTER} powered on +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh new file mode 100755 index 0000000..bac6740 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_browse_check.sh @@ -0,0 +1,57 @@ +#!/bin/sh +#DESCR: Check FTP (File transfer profile) folder navigation from FTP client. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# Change to the sub directory just selected and browse the content of it +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -l > /tmp/tmp_folder_nav.log + +# Check file count property of the sub directory +row_count=`wc -l /tmp/tmp_folder_nav.log | awk '{print $1}'` + +# Compare the server info file and folder count we get +if [ "$row_count" -ne 2 ]; then + echo "[FAIL] Check folder navigation and browse: Failed" + exit 1 +fi + +# Delete the temporary files +rm -rf /tmp/tmp_folder_nav.log + +echo "[PASS] Check folder navigation and browse: Successful" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh new file mode 100755 index 0000000..cd5fc3b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_get_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) file get +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# get subdir1/subdir1_test_file1.txt +filename="subdir1_test_file1.txt" +md5string="838d95ab225a57b134bcaf5a2ca0a38e" +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename} + +if [ ! -f $filename ]; then + echo "[FAIL] Test file not got!" + exit 1 +fi + +md5string_local=`md5sum $filename | awk '{print $1}'` + +if [ "$md5string" != "$md5string_local" ]; then + echo "[FAIL] md5 string mismatch." + rm -rf "$filename" + exit 1 +fi + +echo "md5 strings are same, file get checking successfully!" +echo "[PASS] Check FTP get file: Successful" + +rm -rf "$filename" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh new file mode 100755 index 0000000..9edabaa --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_get_exist_file.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification + +#set -x + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 +adapter_init +auto_pair +agent_setup + +filename="subdir1_test_file1.txt" +md5string="838d95ab225a57b134bcaf5a2ca0a38e" +touch ${filename} +${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename} +md5string_local=`md5sum $filename |awk '{print $1}'` + +# Check if the original file is covered. +if [ "$md5string_local" != "$md5string" ]; then + echo "[FAIL] Check FTP get exist file:Failed!" +else + echo "[PASS] Check FTP get exist file:Successfuly!" +fi + +rm -r ${filename} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh new file mode 100755 index 0000000..d8cc732 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_put_wrong_folder.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 +adapter_init +auto_pair +agent_setup + +subdir="subdir1" +wrong_folder="subdir4" + +echo "This is a temporary file."> /tmp/tmp_ftp_put.log + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $wrong_folder -p /tmp/tmp_ftp_put.log +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "Can not put this file because the folder is wrong!" + echo "[PASS] Check FTP put wrong folder:Successfuly!" + rm -rf /tmp/tmp_ftp_put.log +else + echo "[FAIL] Check FTP put wrong folder:Failed!" +fi +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh b/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh new file mode 100755 index 0000000..e2fb652 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_neg_remove_noexist_file.sh @@ -0,0 +1,80 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair +agent_setup + +subdir="subdir1" +tmp_folder_name="tmp_folder_name1" +tmp_file_name="tmp_ftp" +tmp1_file_name="tmp_file" + +${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log +created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c` +if [ $created -le 0 ]; then + echo "The folder $tmp_folder_name is not created!" + echo "Check FTP folder create: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -ne 1 ]; then + echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp1_file_name + +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -gt 0 ]; then + echo "Can not delete the file $tmp1_file_name under folder $tmp_folder_name!" + echo "[PASS] Check FTP noexist file remove: successfuly" + rm -rf ./tmp_ftp_folder.log + rm -r $tmp_file_name + exit 0 +fi + +rm -rf ./tmp_ftp_folder.log +rm -f $tmp_file_name + +echo "[FAIL] Check FTP noexist file remove: Failed" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh new file mode 100755 index 0000000..62b18b7 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_put_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) put file +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +subdir="subdir1" + +# Create a temporary file +echo "This is a temporary file."> /tmp/tmp_ftp_put.log + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p /tmp/tmp_ftp_put.log + +rm -rf /tmp/tmp_ftp_put.log + +# Try to get the file count of the folder we just pushed. +newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | wc -l` + +if [ "$newfilecount" -ne 3 ]; then + echo "Failed to upload file tmp_ftp_put.log to FTP server!" + echo "[FAIL] Check FTP file put: Failed" + exit 1 +fi + +# remove the file we just pushed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r tmp_ftp_put.log + +echo "[PASS] Check FTP file put: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh b/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh new file mode 100755 index 0000000..e62d402 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_remove_check.sh @@ -0,0 +1,90 @@ +#!/bin/sh +#DESCR: Check FTP (File Transfer Profile) folder manipulation includs create, remove +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/18 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +tmp_folder_name="tmp_folder_name1" +tmp_file_name="tmp_ftp" + +# Create a folder on server's root directory +${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name + +# List the server's root directory and check if +# the new created sub-folder listed in the folder browse output +${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log +created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c` +if [ $created -le 0 ]; then + echo "The folder $tmp_folder_name is not created!" + echo "Check FTP folder create: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +# Create a temporary file +echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name + +# List the root folder again and check if the folder really got removed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -ne 1 ]; then + echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +# Remove the folder we just created +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp_file_name + +# List the root folder again and check if the folder really got removed +${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log +exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c` +if [ $exist -gt 0 ]; then + echo "Failed to delete the file $tmp_file_name under folder $tmp_folder_name!" + echo "[FAIL] Check FTP new folder file remove: Failed" + rm -rf ./tmp_ftp_folder.log + exit 1 +fi + +rm -rf ./tmp_ftp_folder.log +rm -f $tmp_file_name + +echo "[PASS] Check FTP new folder file create & remove: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh b/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh new file mode 100755 index 0000000..b623c79 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_stress_get_bigsizefile.sh @@ -0,0 +1,73 @@ +#!/bin/sh +#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server. +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# make a big file in local directory, size is 10MB, name is "10M_file" +big_file="10M_file" +cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file +cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file +cat ./5M_file ./5M_file > $big_file +rm -f ./1M_file ./5M_file + +subdir="subdir1" + +# Upload this file to FTP server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file} +sleep 5 + +# Download this file to FTP server +rm -f $big_file +time1=`date +%s` +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -g `pwd`/${big_file} +time2=`date +%s` +duration=`expr $time2 - $time1` + +# search this file on Server +ls | grep "${big_file}" > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] Failed to download big 10M file from FTP server!" + ret=1 +else + echo "[PASS] succeed in downloading a 10MB file from server, using ${duration} seconds." +fi + +# Delete the big file +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} +rm -f ${big_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh b/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh new file mode 100755 index 0000000..d4eab24 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_ftp_stress_put_bigsizefile.sh @@ -0,0 +1,71 @@ +#!/bin/sh +#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server. +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# make a big file in local directory, size is 10MB, name is "10M_file" +big_file="10M_file" +cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file +cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file +cat ./5M_file ./5M_file > $big_file +rm -f ./1M_file ./5M_file + +subdir="subdir1" + +# Delete the same name file on Server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} + +# Upload this file to FTP server +time1=`date +%s` +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file} +time2=`date +%s` +duration=`expr $time2 - $time1` + +# search this file on Server +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | grep "${big_file}" > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] Failed to upload big 10M file to FTP server!" + ret=1 +else + echo "[PASS] succeed in uploading a 10MB file to server, using ${duration} seconds." +fi + +# Delete the big file +${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file} +rm -f ${big_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh b/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh new file mode 100755 index 0000000..24b900e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_pairing_computer.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Pair the bluetooth server computer. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# Get the paired computer. +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -eq 0 ]; then + echo "[PASS] The computer server is paired successfully!" +else + echo "[FAIL] The computer server is not paired." + ret=1 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh b/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh new file mode 100755 index 0000000..caa1e85 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_remove_pairing_computer.sh @@ -0,0 +1,59 @@ +#!/bin/sh +#DESCR: Pair the bluetooth server computer and check to remove it. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# make sure computer is paired successfully +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -eq 0 ]; then + echo "[PASS] The computer server is paired successfully!" +else + echo "[FAIL] The computer server is not paired." + ret=0 +fi + +# Remove the paired computer, and check again. +sleep 2 +${TEST_DEVICE} remove $SERV_BD_ADDR + +${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null +if [ $? -ne 0 ]; then + echo "[PASS] The computer server is removed successfully!" +else + echo "[FAIL] The computer server is not removed." + ret=0 +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_gap_type_check.sh b/ivi/tts-bluez-tests/src/bt_gap_type_check.sh new file mode 100755 index 0000000..cf3675e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_gap_type_check.sh @@ -0,0 +1,63 @@ +#!/bin/sh +#DESCR: Check the remote device type after pairing with it. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 +# Get the paired computer type. +# class_number=`${TEST_DEVICE} class $SERV_BD_ADDR` + Icon_device=`${TEST_DEVICE} Icon $SERV_BD_ADDR` + +case $Icon_device in +#case $class_number in + 0) device_type="computer" ;; + 1) device_type="computer" ;; + 2) device_type="phone" ;; + 4) device_type="headset" ;; + 5) device_type="keyboard or mouse" ;; + *) device_type="not captured" ;; +esac + +if [ "${device_type}" = "${SERV_BD_TYPE}" ]; then + echo "[PASS] Correct! The server device type is $device_type." +else + if [ "$device_type" = "not captured" ]; then + echo "[FAIL] Sorry, test case cannot judge what it is. Please inform case maker, thanks!" + else + echo "[FAIL] No, the server device is $device_type, but you assign ${SERV_BD_TYPE} in config file." + ret=1 + fi +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh b/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh new file mode 100755 index 0000000..1be660a --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_clock_local.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool clock |grep "Clock" +ret=$? + +if [ $ret -eq 0 ] ; then + echo "[PASS] Get local clock:successfuly!" +else + echo "[FAIL] Get local clock:Failed!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh b/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh new file mode 100755 index 0000000..973d0e8 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_clock_remote.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair + +ret=1 + +hcitool clock $SERV_BD_ADDR |grep "Clock" +ret=$? + +if [ $ret -eq 0 ] ; then + echo "[PASS] Get remote clock:successfuly!" +else + echo "[FAIL] Get remote clock:Failed!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_dev.sh b/ivi/tts-bluez-tests/src/bt_hci_dev.sh new file mode 100755 index 0000000..04d62c2 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_dev.sh @@ -0,0 +1,43 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +device=`hcitool dev |grep -v "Devices:"` + +if [ -n "$device" ] ; then + echo "[PASS] Display local devices:successfuly!" +else + echo "[FAIL] There is no local bluetooth device!" + exit 1 +fi + diff --git a/ivi/tts-bluez-tests/src/bt_hci_epinq.sh b/ivi/tts-bluez-tests/src/bt_hci_epinq.sh new file mode 100755 index 0000000..91163d8 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_epinq.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool epinq +$HCICONFIG |grep "INQUIRY" +ret=$? + +if [ $ret -ne 0 ]; then + echo "[PASS] Exit periodic inquiry:Successfuly!" +else + echo "[FAIL] Exit periodic inquiry:Failed!" + exit 1 +fi diff --git a/ivi/tts-bluez-tests/src/bt_hci_info.sh b/ivi/tts-bluez-tests/src/bt_hci_info.sh new file mode 100755 index 0000000..c4fe4ec --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_info.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=0 + +hcitool info ${SERV_BD_ADDR} +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "[PASS] Get server's information:Successfuly!" +else + echo "[FAIL] Get server's information:Failed!" +fi + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_hci_inq.sh b/ivi/tts-bluez-tests/src/bt_hci_inq.sh new file mode 100755 index 0000000..a5352db --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_inq.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=0 + +hcitool inq +ret=$? + +if [ ${ret} -eq 0 ] ; then + echo "[PASS] Get server's information:Successfuly!" +else + echo "[FAIL] Get server's information:Failed!" +fi + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/bt_hci_spinq.sh b/ivi/tts-bluez-tests/src/bt_hci_spinq.sh new file mode 100755 index 0000000..0d80bd2 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_hci_spinq.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +ret=1 + +hcitool spinq +$HCICONFIG |grep "INQUIRY" +ret=$? + +if [ $ret -eq 0 ]; then + echo "[PASS] Start periodic inquiry:Successfuly!" +else + echo "[FAIL] Start periodic inquiry:Failed!" + exit 1 +fi diff --git a/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh b/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh new file mode 100755 index 0000000..5caff0e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_l2cap_ping_check.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check l2cap socket communication using l2ping +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# Ping server for 4 times. +l2ping $SERV_BD_ADDR -c 4 > /tmp/l2ping.log + +num_reply=`cat /tmp/l2ping.log | grep "44 bytes from $SERV_BD_ADDR" -c` + +rm -rf /tmp/l2ping.log + +if [ "$num_reply" -le 0 ]; then + echo "no response recieved from adaptor $SERV_BD_ADDR" + echo "[FAIL] Check l2cap socket communication using l2ping: Failed" + exit 1 +else + echo "l2cap ping check passed, got $num_reply responses from $SERV_BD_ADDR" + echo "[PASS] Check l2cap socket communication using l2ping: Successfully" +fi + +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_opp_send_files.sh b/ivi/tts-bluez-tests/src/bt_opp_send_files.sh new file mode 100755 index 0000000..601978b --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_opp_send_files.sh @@ -0,0 +1,73 @@ +#!/bin/sh +set -x +#DESCR: Check OPP (Objects Push Profile) by putting files to OPP server +# Copyright (C) 2010 Intel Corporation +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2010/12/23 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +# after obexd-0.42, the obexd related operation needs an agent in background. +agent_setup + +# Get the last opp test file number on server root dir. +oldfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"` +opp_lastfile_number=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep "tmp_opp_send" | awk -v max=0 -F"_" '{if($NF>max) {max=$NF ; print max}}' | tail -n 1` + +# Create 3 temporary files, whose suffix number is bigger than last file number +temp_number=3 + +i=0 +while [ $i -lt $temp_number ]; +do + temp_file="tmp_opp_send_`expr ${opp_lastfile_number} + 1`" + cp ${DATA_DIR}/object $temp_file + ${DATA_DIR}/opp-client -d $SERV_BD_ADDR -s $temp_file + ((i++)) + ((opp_lastfile_number++)) +done + +# Upload this file to FTP server, if the file is not text, server will use +# OPP (channel 9) to receive + +rm -rf tmp_opp_send_* + +# Try to get the file count of the folder we just pushed. +newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"` + +if [ $newfilecount -ne `expr $oldfilecount + $temp_number` ]; then + echo "Failed to upload files tmp_opp_send_* to OPP server!" + echo "[FAIL] Check OPP file put: Failed" + exit 1 +fi + +echo "[PASS] Check OPP files put: successfully" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh b/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh new file mode 100755 index 0000000..a87e2a5 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_panu_setup_check.sh @@ -0,0 +1,68 @@ +#!/bin/sh +#DESCR: Set up PAN User and ping the PAN Server's IP (client gateway). +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang, Jingke +# Date Created: 2010/12/02 +# +# Modifications: +# Modificator Date +# Content of Modification + +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +#run the script to connect the server +killall test_network > /dev/null +${DATA_DIR}/test_network $SERV_BD_ADDR nap >/dev/null & + +# Sleep for some seconds to let test_network finish. +sleep 5 + +#you will have bnep0 if the connection successful +ifconfig | grep "bnep0" > /dev/null +if [ $? -ne 0 ]; then + echo "Have not build connection to server!" + exit 1 +else + echo "Step1: Build connection to server successfully!" +fi + +#Assign ip for bnep0, server has been set to 192.168.0.1 +ifconfig bnep0 192.168.0.2 + +#Add default gw +route add default gw 192.168.0.1 +echo "Wait for 10 seconds." +sleep 10 + +#ping your server address +ping 192.168.0.1 -c 1 > /dev/null +if [ $? -ne 0 ]; then + echo "[FAIL] no response recieved from adaptor $SERV_BD_ADDR" + exit 1 +fi + +echo "[PASS] Step2: Ping gateway successfully. PANU profile passed" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh b/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh new file mode 100755 index 0000000..06b08a3 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_pbap_pb_get_check.sh @@ -0,0 +1,48 @@ +#!/bin/sh +#DESCR: Check pbap profile +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang, Jingke +# Date Created: 2010/12/09 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +agent_setup + +contacts=`${PBAP_CLIENT} $SERV_BD_ADDR | grep "BEGIN:VCARD" | wc -l` + +if [ $contacts -eq 0 ]; then + echo "[FAIL] Fail to get the phonebook from remote" + exit 1 +fi + +echo "[PASS] Successfully get the phonebook from remote" +exit 0 diff --git a/ivi/tts-bluez-tests/src/bt_sdp_add.sh b/ivi/tts-bluez-tests/src/bt_sdp_add.sh new file mode 100755 index 0000000..812aea0 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_add.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + +sdptool add DUN +service_name=`sdptool search --bdaddr local DUN |grep "Service Name"` + +if [ -n "$service_name" ] ; then + echo "$service_name" + echo "[PASS] Add DUN service:Successfuly!" +else + echo "[FAIL] Add DUN service:Failed!" + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh b/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh new file mode 100755 index 0000000..eddd0a9 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_browse_local.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 + +# Local device should support SDP Server. +service_record=`sdptool browse local | grep "Service Name"` +line=`echo $service_record | wc -l` +if [ 0 -eq $line ]; then + echo "[FAIL] No SDP Server support" + ret=1 +else + echo "[PASS] Device support SDP Server, local service list is:" + echo "$service_record" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh b/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh new file mode 100755 index 0000000..ad667d4 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_browse_remote.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +# Enter the case folder +cd `dirname $0` +. ./data/bluetooth_env + +# Init BT adapter to up and piscan +adapter_init + +# Make a pairing with the server +auto_pair + +ret=0 + +# Local device should support SDP Client, it should be able to browse remote SDP Server. +service_record=`sdptool browse ${SERV_BD_ADDR} | grep "Service Name"` +line=`echo $service_record | wc -l` +if [ 0 -eq $line ]; then + echo "[FAIL] No SDP Client support" + ret=1 +else + echo "[PASS] Device support SDP Client, remote server's service list is:" + echo "$service_record" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_sdp_del.sh b/ivi/tts-bluez-tests/src/bt_sdp_del.sh new file mode 100755 index 0000000..120f63f --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_del.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add --handle=0x10000 LAN +sdptool del 0x10000 +service=`sdptool records local | grep "Service RecHandle: 0x10000"` + +if [ -z "$service" ]; then + echo "[PASS] Delete 0x10000 service:Successfuly!" +else + echo "[FAIL] Delete 0x10000 service:Failed!" + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_get.sh b/ivi/tts-bluez-tests/src/bt_sdp_get.sh new file mode 100755 index 0000000..8e46d1e --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_get.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add --handle=0x10000 FTP +service=`sdptool get 0x10000 |grep "Service Name"` + +if [ -n "$service" ]; then + echo "[PASS] Get local 0x10000 service:Successfuly!" +else + echo "[FAIL] Get local 0x10000 service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh b/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh new file mode 100755 index 0000000..c1beaaf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_search_local.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init + + +sdptool add FTP +service=`sdptool search --bdaddr=local FTP |grep "OBEX File Transfer"` + +if [ -n "$service" ]; then + echo "[PASS] Search local FTP service:Successfuly!" +else + echo "[FAIL] Search local FTP service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh b/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh new file mode 100755 index 0000000..3d9d550 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_sdp_search_remote.sh @@ -0,0 +1,45 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +adapter_init +auto_pair + +service=`sdptool search --bdaddr=$SERV_BD_ADDR FTP |grep "OBEX File Transfer"` + +if [ -n "$service" ]; then + echo "[PASS] Search local FTP service:Successfuly!" +else + echo "[FAIL] Search local FTP service:Failed! " + exit 1 +fi + + diff --git a/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh b/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh new file mode 100755 index 0000000..8a9a871 --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_daemon_bluetoothd.sh @@ -0,0 +1,37 @@ +#!/bin/sh +#DESCR: Check if bluetoothd has been started +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Jingke Zhang +# Date Created: 2010/01/12 +# +# Modifications: +# Modificator Date +# Content of Modification + +bt_daemon_pid=`ps aux | grep bluetoothd | grep -v grep | awk '{print $2}' | head -n 1` + +if [ -z "$bt_daemon_pid" ]; then + echo "bluetoothd daemon isn't started, this is a crital failure" + echo "[FAIL] Check if bluetoothd daemon started: Failed" + exit 1 +else + echo "Check if bluetoothd daemon started: Successfully" + echo "[PASS] bluetoothd daemon has been started, the pid is: $bt_daemon_pid" + exit 0 +fi diff --git a/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh b/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh new file mode 100755 index 0000000..4720c6c --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_package_bluez.sh @@ -0,0 +1,38 @@ +#!/bin/sh +#DESCR: Check if the stack packages are installed in system +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +ret=0 +P_Bluez=`rpm -qa | grep "bluez-[0-9]"` + +if [ -z "$P_Bluez" ]; then + echo "No Bluez package is found!" + ret=1 +else + echo "[PASS] Bluez package is: $P_Bluez" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh b/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh new file mode 100755 index 0000000..8291cdf --- /dev/null +++ b/ivi/tts-bluez-tests/src/bt_system_package_obexd.sh @@ -0,0 +1,38 @@ +#!/bin/sh +#DESCR: Check if the stack packages are installed in system +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + +ret=0 +P_obexd=`rpm -qa | grep "obexd-[0-9]"` + +if [ -z "$P_obexd" ]; then + echo "No obexd package is found!" + ret=1 +else + echo "[PASS] obexd package is: $P_obexd" +fi + +exit $ret diff --git a/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh b/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh new file mode 100755 index 0000000..8d98e93 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_disable_sspmode.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} sspmode 0 +${HCICONFIG} ${adapter} sspmode > ${tmp_file} +grep -w "Disabled" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Disable sspmode successfuly!" +else + echo "[FAIL] Fail to disable sspmode!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh b/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh new file mode 100755 index 0000000..b7e8abf --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_enable_sspmode.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} sspmode 1 +${HCICONFIG} ${adapter} sspmode > ${tmp_file} +grep -w "Enabled" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Enable sspmode successfuly!" +else + echo "[FAIL] Fail to enable sspmode!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_auth.sh b/ivi/tts-bluez-tests/src/hci_set_auth.sh new file mode 100755 index 0000000..dc1ba5d --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_auth.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="auth" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "AUTH" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +${HCICONFIG} ${adapter} noauth +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_encrypt.sh b/ivi/tts-bluez-tests/src/hci_set_encrypt.sh new file mode 100755 index 0000000..95f6fce --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_encrypt.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="encrypt" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ENCRYPT" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " +fi + +${HCICONFIG} ${adapter} noencrypt +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_iscan.sh b/ivi/tts-bluez-tests/src/hci_set_iscan.sh new file mode 100755 index 0000000..5e9d2bd --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_iscan.sh @@ -0,0 +1,54 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="iscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ISCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_noauth.sh b/ivi/tts-bluez-tests/src/hci_set_noauth.sh new file mode 100755 index 0000000..224aac1 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noauth.sh @@ -0,0 +1,52 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter=noauth +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "AUTH" ${tmp_file} +ret=$? + + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +rm -r ${tmp_file} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh b/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh new file mode 100755 index 0000000..ccabc78 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noencrypt.sh @@ -0,0 +1,51 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="noencrypt" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "ENCRYPT" ${tmp_file} +ret=$? + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " +fi + +rm -r ${tmp_file} + +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_noscan.sh b/ivi/tts-bluez-tests/src/hci_set_noscan.sh new file mode 100755 index 0000000..988e253 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_noscan.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="noscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONGIH} > ${tmp_file} +grep -w "PSCAN ISCAN" ${tmp_file} +ret=$? + + +if [ ${ret} -ne 0 ];then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail! " + ret=1 +fi + +${HCICONFIG} ${adapter} piscan +rm -r ${tmp_file} +exit ${ret} diff --git a/ivi/tts-bluez-tests/src/hci_set_piscan.sh b/ivi/tts-bluez-tests/src/hci_set_piscan.sh new file mode 100755 index 0000000..b99d3ce --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_piscan.sh @@ -0,0 +1,56 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="piscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "PSCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + + diff --git a/ivi/tts-bluez-tests/src/hci_set_pscan.sh b/ivi/tts-bluez-tests/src/hci_set_pscan.sh new file mode 100755 index 0000000..3a12915 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_set_pscan.sh @@ -0,0 +1,56 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +parameter="pscan" +ret=1 + +adapter_init + +${HCICONFIG} ${adapter} ${parameter} +${HCICONFIG} > ${tmp_file} +grep -w "PSCAN" ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ]; then + echo "[PASS] Set ${parameter} successfuly!" +else + echo "[FAIL] Set ${parameter} fail!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + + diff --git a/ivi/tts-bluez-tests/src/hci_tool_scan.sh b/ivi/tts-bluez-tests/src/hci_tool_scan.sh new file mode 100755 index 0000000..76e6a05 --- /dev/null +++ b/ivi/tts-bluez-tests/src/hci_tool_scan.sh @@ -0,0 +1,53 @@ +#!/bin/sh +#DESCR: Check to get MAC address of the local adapter. +# Copyright (C) 2010 Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Authors: +# Zhang Jingke +# Date Created: 2011/03/24 +# +# Modifications: +# Modificator Date +# Content of Modification +# + + + +cd `dirname $0` +. ./data/bluetooth_env + +ret=1 + +adapter_init + +hcitool scan > ${tmp_file} +grep -v "Scanning..." ${tmp_file} +ret=$? + +if [ ${ret} -eq 0 ];then + echo "[PASS] scaned device successfuly!" +else + echo "[FAIL] no device could be scaned!" +fi + +rm -r ${tmp_file} + +exit ${ret} + + + + diff --git a/ivi/tts-bluez-tests/tests.xml b/ivi/tts-bluez-tests/tests.xml new file mode 100755 index 0000000..1072899 --- /dev/null +++ b/ivi/tts-bluez-tests/tests.xml @@ -0,0 +1,377 @@ + + + + + + + + + + ps -ef | grep bluetoothd +check if system runs bluetoothd daemon in beginning of booting up. + when system boots up, it should run bluetoothd daemon. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_daemon_bluetoothd.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 name + it should get BT device name + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_name.sh + + + IVI + + + + + + + + + rpm -qv obexd +Check if obexd rpm package is installed + system should install obexd package + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_obexd.sh + + + IVI + + + + + + + + + 1, Run command "hciconfig -a" to display all device information. (In auto case, it will call DBus API to get the name property of the adapter) +2. Find BT MAC address from the output of the command. + 1. Bluetooth MAC address should be output in pattern, for example, 00:22:69:FB:AA:8A + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_address.sh + + + IVI + + + + + + + + + 1. Call DBus API: SetProperty("Powered", <On or Off>) to power on/off the bluetooth adapter. +2. Call DBus API: GetProperties() to get the value of "Powered" property. 1 stands for On, and 0 stands for Off. + 1. The property value got from DBus call should be same with the value we set. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_power.sh + + + IVI + + + + + + + + + rpm -qv bluez +Check if the bluez rpm package is installed + System should install bluez package. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_bluez.sh + + + IVI + + + + + + + + + + 1. Call DBus API: SetProperty("Powered", <boolean value for On/Off>) to power on and power off the adapter for 50 times. +2. Check if the bluetooth device can be powered correctly during the stress process. + 1. For each execution during the 50 times, adapter power should be correctly On and Off. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_stress_power_50times.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 discoverabletimeout 1 + the hci0 discoverabletimeout could be set to 1 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_discoverabletimeout.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 pairable 0 + hci0 pairable could be set to 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_off.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 pairable 0 + hci0 pairable should be set to 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_on.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 discoverabletimeout + it should present discoverabletimeout info. + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_discoverabletimeout.sh + + + IVI + + + + + + + + + /usr/lib/bluez/test/test-adapter hci0 power + it should get hci0 power status + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_power.sh + + + IVI + + + + + + + hci command to set iscan mode + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh + + + IVI + + + + + hci command to set adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh + + + IVI + + + + + hci command to check adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh + + + IVI + + + + + hci command to set piscan mode + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh + + + IVI + + + + + hci command to check device informaton + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh + + + IVI + + + + + hcitool command to scan nearby bluetooth devices + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh + + + IVI + + + + + hci command to get adapter name + + + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh + 0 + + + /usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh + + + IVI + + + + + diff --git a/ivi/tts-connman-tests/ChangeLog b/ivi/tts-connman-tests/ChangeLog new file mode 100755 index 0000000..30e3009 --- /dev/null +++ b/ivi/tts-connman-tests/ChangeLog @@ -0,0 +1,27 @@ +ver 1.0.5: + Adjust test cases + +ver 1.0.4: + Add new test cases for ConnMan, including + + Tethering + + pacrunner + + TTLS EAP + + OpenVPN + + Data Transfer + +ver 1.0.3: + ConnMan 0.64 uses net.connman dbus interface. org.moblin.connman + is obsolete. Changed test cases accordingly + +ver 1.0.2: + Enhance test suites including: + + Remove Device interface + + Signal cases: Trigger signal in a thread + + Flight cases: Set manager online after testing done + + Fix bugs in test cases, for example, 7172, 7173 + + Other issues like enhance apset, IPv4 change, detect wifi security etc + + Put all manual and auto cases in tests.xml. + +ver 1.0.0: + Initial public release. + diff --git a/ivi/tts-connman-tests/README b/ivi/tts-connman-tests/README new file mode 100755 index 0000000..97f1810 --- /dev/null +++ b/ivi/tts-connman-tests/README @@ -0,0 +1,84 @@ + +--------------------- +Introduction +--------------------- +tts-connman-tests contains both manual and auto tests for ConnMan. +tests.xml describes both auto and manual tests. + +ConnMan is an open source project that provides a daemon for managing +internet connections within embedded devices running the Linux operating +system + +tts-connman-tests automatic test scripts are in the following source code +structure: +tts-connman-tests + data + apset.tgz: The script that used to set Cisco WiFi AP + pack.sh: The script that used to build package + tests.xml: ConnMan test cases definition, including both auto and manaul + README: This file + src + 3G: 3G test scripts + BT: Bluetooth test scripts + common: Common functions that used in test cases + Ethernet: Ethernet test scripts + WiFi: WiFi test scripts + Signal: Test ConnMan signal functionality + Profile: Test ConnMan profile object + Flight: Test ConnMan in flight on/off mode. + Property: Test property value in API +Following are structure after installation: +/usr/share/tests/common-connectivity-suite/tts-connman-tests/ + CM_*.py: All automatic test cases + common: Common functions that used in test cases + README: This file + : Helper scripts that used in sub test suites like WiFi + tests.xml: ConnMan test case definitions + +--------------------- +Testing environment +--------------------- ++ Test machine: This is the device/machine that we test ivi image, like VTC1010 or BFH. ++ Ethernet: Local ethernet ++ WiFi Guest: An open-no-security wireless AP with essid Guest. We use this network to test basic WiFi features by default. ++ WEP WIFI: A WEP encrypted wireless AP. We use it to test WEP encrypted cases ++ WPA2 WIFI: A WPA2 encrypted wireless AP. We use it to test WPA/WPA2 encrypted cases + +--------------------- +Install and Run +--------------------- ++ Modify below variables in tts-connman-tests/src/common/config.py to configure actual network information + cm_open_ap_essid: The open AP's ssid, the value type is a string, eg. cm_open_ap_essid = 'Guest' + cm_wep_ap: Wep encrypted AP's ssid and password, the value type is a hash which including 2 keys("name" and "password"), + cm_wpa2_ap: WPA/WPA2 encrypted AP's ssid and password, the value is a hash which including 2 keys("name" and "password"), + cm_available_ap: Available(could surf internet) AP's ssid and password, the value type is a hash which including 2 keys("name" and "password") + cm_ping_server_ip: The IP address that in the same network with test devices and AP + + ++ Install +rpm -ivh tts-connman-tests-0.1.0-1.i386.rpm --nodeps + ++ Test environment setup +Refer the section Test environment setup + ++ Run +Setup a open hidden WiFi AP with essid that you +Connect to a ethernet network so that "ping -b" local network has response +cd /usr/share/tests/common-connectivity-suite/tts-connman-tests/ +su - +export PYTHONPATH=$PYTHONPATH:/usr/share/tests/common-connectivity-suite/tts-connman-tests/common +testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-connman-tests/tests.xml --comm localhost -o ./results.xml +Please refer to the section Test Envrionment setup for what to test + +--------------------- +Known issues +--------------------- +1. Some test cases might fail in batch running, meanwhile pass when running + independently. We're still debuging these cases. + +Note: you can report the defects of this test suite to jeff.zheng@intel.com + +--------------------- +To Do +--------------------- +We will develop more test cases diff --git a/ivi/tts-connman-tests/bisect.sh b/ivi/tts-connman-tests/bisect.sh new file mode 100755 index 0000000..6ee5391 --- /dev/null +++ b/ivi/tts-connman-tests/bisect.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Usage: bisect +git bisect start +git bisect good $1 +git bisect bad master + +while [ 1 ]; do +make clean +pkill -9 connmand +./bootstrap-configure +make -j 9 || { echo make failed; git bisect reset; exit 1; } +src/connmand + +$2 + +if [ $? -eq 0 ]; then + git bisect good |head -n 1 |grep "bad" + if [ $? -eq 0 ]; then + git bisect reset + echo culprit commit found + exit 0 + fi +else + git bisect bad |head -n 1 |grep "bad" + if [ $? -eq 0 ]; then + git bisect reset + echo culprit commit found + exit 0 + fi +fi +done + diff --git a/ivi/tts-connman-tests/coverage.ods b/ivi/tts-connman-tests/coverage.ods new file mode 100755 index 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 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 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 index 0000000..5df904d --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_BigPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_BigPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.Ping(1400)) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py b/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py new file mode 100755 index 0000000..d750a4c --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py b/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py new file mode 100755 index 0000000..9232806 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py b/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py new file mode 100755 index 0000000..9deff91 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import time + +dev = C3GDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(20) +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Download.py b/ivi/tts-connman-tests/src/3G/CM_3G_Download.py new file mode 100755 index 0000000..09c908c --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py b/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py new file mode 100755 index 0000000..b3220cd --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_HasDHCP.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.PoweredOn() +time.sleep(5) +dev.Connect() +time.sleep(5) +svc = dev.GetService() +EXIT(svc.IsFixed()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py b/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py new file mode 100755 index 0000000..f3634dc --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_HasIP.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +print dev +dev.Connect() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py new file mode 100755 index 0000000..eb2e767 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigDown.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +if svc.Ping() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py new file mode 100755 index 0000000..0034ef6 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IfconfigUp.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = C3GDevice() +dev.Connect() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +if svc.Ping() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py new file mode 100755 index 0000000..4b94b10 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py new file mode 100755 index 0000000..f1c34f2 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py new file mode 100755 index 0000000..b615750 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsReady.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +svc = dev.GetService() +svc.Connect() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py b/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py new file mode 100755 index 0000000..88b54b8 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_IsSCPWork.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py new file mode 100755 index 0000000..39023f2 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py new file mode 100755 index 0000000..b32e45a --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py b/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py new file mode 100755 index 0000000..7e04d45 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_SmallPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_SmallPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.Ping(64)) diff --git a/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py b/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py new file mode 100755 index 0000000..50c4b86 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/CM_3G_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_3G_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = C3GDevice() +dev.Connect() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/3G/cleanup b/ivi/tts-connman-tests/src/3G/cleanup new file mode 100755 index 0000000..4e8ee45 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/cleanup @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/3G/startup b/ivi/tts-connman-tests/src/3G/startup new file mode 100755 index 0000000..b919507 --- /dev/null +++ b/ivi/tts-connman-tests/src/3G/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + +#manager.Cleanup() +manager.Startup3G() diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py new file mode 100755 index 0000000..5cd4586 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Connect.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +ret=dev.IsConnected() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py new file mode 100755 index 0000000..94af67b --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Disconnect.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#manager.Startup3G() +dev = C3GDevice() +if dev.device == None: + print "No 3G Device!" + #manager.Cleanup() + EXIT(False) +dev.Connect() +if dev.IsConnected() == False: + print 'The 3G service is not connected' + #manager.Cleanup() + EXIT(False) +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) +ret=(dev.IsConnected() == False) +#manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py new file mode 100755 index 0000000..853eaf6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Download.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not connected!" + manager.Cleanup() + EXIT(False) +ret=dev.Download() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py new file mode 100755 index 0000000..853eaf6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_3G_Upload.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Startup3G() +dev = C3GDevice() +if dev.tech == None: + print "No 3G Device!" + manager.Cleanup() + EXIT(False) +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not connected!" + manager.Cleanup() + EXIT(False) +ret=dev.Download() +manager.Cleanup() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py new file mode 100755 index 0000000..e505713 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Connect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py new file mode 100755 index 0000000..3ea61c9 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The BT is not connected' + EXIT(False) +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py new file mode 100755 index 0000000..fe7efd3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Download.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py new file mode 100755 index 0000000..ee162d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_BT_Upload.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsConnected(): + dev.Disconnect() +props=dev.GetService().GetProperties() +name = props["Name"] +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py new file mode 100755 index 0000000..3bc1e6b --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Connect.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key) +if dev.IsConnected(): + dev.Disconnect() +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py new file mode 100755 index 0000000..778d5b6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_PSK_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key) +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py new file mode 100755 index 0000000..bb86895 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Connect.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +if dev.IsConnected(): + dev.Disconnect() +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py new file mode 100755 index 0000000..a7afbba --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Disconnect") +print ret[1] +EXIT(dev.IsConnected() == False) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py new file mode 100755 index 0000000..25a0b9d --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Download.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py new file mode 100755 index 0000000..cc7cd8e --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Scan.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +EXIT(ret[0] == 0) + diff --git a/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py new file mode 100755 index 0000000..55197f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BM/CM_BM_WEP_Upload.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key) +ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect") +print ret[1] +if dev.IsConnected() == False: + print "Not Connectred!" + EXIT(False) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py b/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py new file mode 100755 index 0000000..d5243d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_BigPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_BigPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py b/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py new file mode 100755 index 0000000..ef95ee7 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py b/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py new file mode 100755 index 0000000..f0e4abd --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py b/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py new file mode 100755 index 0000000..c8992fa --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Disconnect.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import time + +dev = BTDevice() +dev.Connect() +if dev.IsConnected() == False: + print 'The Wifi is not connected' + EXIT(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(20) +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Download.py b/ivi/tts-connman-tests/src/BT/CM_BT_Download.py new file mode 100755 index 0000000..e011067 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py b/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py new file mode 100755 index 0000000..c65bfe7 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_HasDHCP.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py b/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py new file mode 100755 index 0000000..cf5ac39 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_HasIP.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +print dev +dev.Connect() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py new file mode 100755 index 0000000..5460728 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigDown.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py new file mode 100755 index 0000000..3561c41 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IfconfigUp.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = BTDevice() +dev.Connect() +ret = dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py new file mode 100755 index 0000000..a85f50f --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py new file mode 100755 index 0000000..793a898 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py new file mode 100755 index 0000000..54b16c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsReady.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +svc = dev.GetService() +svc.Connect() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py b/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py new file mode 100755 index 0000000..4e1c138 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_IsSCPWork.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py new file mode 100755 index 0000000..b2ee1bd --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py new file mode 100755 index 0000000..497ce79 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py b/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py new file mode 100755 index 0000000..ef2d639 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_SmallPing.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_SmallPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +svc = dev.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py b/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py new file mode 100755 index 0000000..1e9a40f --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/CM_BT_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_BT_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = BTDevice() +dev.Connect() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py b/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py new file mode 100755 index 0000000..3e598e4 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/bluez_simple_agent.py @@ -0,0 +1,108 @@ +#!/usr/bin/python + +import gobject + +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +class Rejected(dbus.DBusException): + _dbus_error_name = "org.bluez.Error.Rejected" + +class Agent(dbus.service.Object): + exit_on_release = True + + def set_exit_on_release(self, exit_on_release): + self.exit_on_release = exit_on_release + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Release(self): + print "Release" + if self.exit_on_release: + mainloop.quit() + + @dbus.service.method("org.bluez.Agent", + in_signature="os", out_signature="") + def Authorize(self, device, uuid): + print "Authorize (%s, %s)" % (device, uuid) + return + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="s") + def RequestPinCode(self, device): + print "RequestPinCode (%s)" % (device) + return "0000" + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="u") + def RequestPasskey(self, device): + print "RequestPasskey (%s)" % (device) + passkey = "0000" + return dbus.UInt32(passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def DisplayPasskey(self, device, passkey): + print "DisplayPasskey (%s, %d)" % (device, passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def RequestConfirmation(self, device, passkey): + print "RequestConfirmation (%s, %d)" % (device, passkey) + return + + @dbus.service.method("org.bluez.Agent", + in_signature="s", out_signature="") + def ConfirmModeChange(self, mode): + print "ConfirmModeChange (%s)" % (mode) + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Cancel(self): + print "Cancel" + +def create_device_reply(device): + print "New device (%s)" % (device) + mainloop.quit() + +def create_device_error(error): + print "Creating device failed: %s" % (error) + mainloop.quit() + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + manager = dbus.Interface(bus.get_object("org.bluez", "/"), + "org.bluez.Manager") + + if len(sys.argv) > 1: + path = manager.FindAdapter(sys.argv[1]) + else: + path = manager.DefaultAdapter() + + adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = gobject.MainLoop() + + if len(sys.argv) > 2: + if len(sys.argv) > 3: + device = adapter.FindDevice(sys.argv[2]) + adapter.RemoveDevice(device) + + agent.set_exit_on_release(False) + adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo", + reply_handler=create_device_reply, + error_handler=create_device_error) + else: + adapter.RegisterAgent(path, "DisplayYesNo") + print "Agent registered %s" %(sys.argv[1]) + + mainloop.run() + diff --git a/ivi/tts-connman-tests/src/BT/cleanup b/ivi/tts-connman-tests/src/BT/cleanup new file mode 100755 index 0000000..cd01845 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/cleanup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/BT/startup b/ivi/tts-connman-tests/src/BT/startup new file mode 100755 index 0000000..f1642e0 --- /dev/null +++ b/ivi/tts-connman-tests/src/BT/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupBT() diff --git a/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp b/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp new file mode 100755 index 0000000..617657f --- /dev/null +++ b/ivi/tts-connman-tests/src/Bearer/Bearer/bearer.cpp @@ -0,0 +1,108 @@ +/* +# Copyright (C) 2010, Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation; either version 2 of the License, +# or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# Authors: +# Jeff Zheng +*/ +#include +#include +#include + +class Bearer: public QObject +{ + Q_OBJECT +private slots: + void Scan(); + void Connect(); + void Disconnect(); + void Test(); +}; + +void Bearer::Test() +{ + qDebug() << "The second case : Test"; + QVERIFY(1 == 2); +} + +void Bearer::Scan() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); +} + +void Bearer::Connect() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); + session = new QNetworkSession(cfg, this); + session->open(); + session->waitForOpened(-1); +} + +void Bearer::Disconnect() +{ + char *penv; + QNetworkConfigurationManager manager; + QNetworkSession *session; + QNetworkConfiguration cfg; + penv = getenv("CM_Bearer"); + QList list = manager.allConfigurations(); + int i = 0; + for (i = 0; i < list.size(); ++i) { + if ( list.at(i).name() == penv ) { + qDebug() << "Found " << penv << " !"; + cfg = list.at(i); + break; + } + } + QVERIFY2(i < list.size(), "Service not found"); + session = new QNetworkSession(cfg, this); + session->disconnect(); + session->stop(); + session->close(); +// session->waitForClosed(-1); +} + +QTEST_MAIN(Bearer) +#include "bearer.moc" diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py new file mode 100755 index 0000000..a1e027e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_BigBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_BigBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py new file mode 100755 index 0000000..058269e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Connect.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +dev = EthDevice() +time.sleep(3) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py new file mode 100755 index 0000000..b4f15ae --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsExist()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py new file mode 100755 index 0000000..928b041 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Disconnect.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +dev = EthDevice() +time.sleep(3) +if dev.IsConnected() == False: + print 'The Wifi is not connected' + Exit(False) + +svc = dev.GetService() +svc.Disconnect() +time.sleep(3) +if dev.IsConnected() == True: + EXIT(False) +svc.Connect() +time.sleep(10) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py new file mode 100755 index 0000000..b608dbf --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Download.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py new file mode 100755 index 0000000..43ba7bb --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasDHCP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py new file mode 100755 index 0000000..8c8b7e2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_HasIP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py new file mode 100755 index 0000000..2adc3aa --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigDown.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = EthDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = EthDevice() +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +if properties['State'] == 'available': + EXIT(False) +dev.ifconfigUP() +time.sleep(5) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py new file mode 100755 index 0000000..23951cf --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IfconfigUp.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = EthDevice() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(10) +dev = EthDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py new file mode 100755 index 0000000..ddb62f6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py new file mode 100755 index 0000000..fb4bff2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py new file mode 100755 index 0000000..88be67e --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsReady.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py new file mode 100755 index 0000000..e98e5c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_IsSCPWork.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +EXIT(eth.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py new file mode 100755 index 0000000..e475962 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py new file mode 100755 index 0000000..364a600 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_PoweredOn.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +time.sleep(10) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py new file mode 100755 index 0000000..838bbcb --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_SmallBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_SmallBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +eth = EthDevice() +svc = eth.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py new file mode 100755 index 0000000..9da3896 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/CM_Eth_Upload.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Eth_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/Ethernet/startup b/ivi/tts-connman-tests/src/Ethernet/startup new file mode 100755 index 0000000..c215490 --- /dev/null +++ b/ivi/tts-connman-tests/src/Ethernet/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupEthernet() diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py new file mode 100755 index 0000000..8fa8611 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthIsPoweredOff.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthIsPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +# Assume we're in offline mode + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +ret=dev.IsPoweredOff() +if ret: + print 'Default powered is off in offline mode' +else: + print 'Powered is on in offline mode' +manager.Online() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py new file mode 100755 index 0000000..b96a9c6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthNoPing.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthNoPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +time.sleep(3) +manager.Offline() +time.sleep(3) +svc = dev.GetService() +ret = svc != None and svc.BroadcastPing() +if ret: + print 'Can ping in offline mode' +manager.Online() +EXIT(not ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py new file mode 100755 index 0000000..a4cccce --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthOnline.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthOnline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +eth = EthDevice() +ASSERT(eth.IsExist(), "No device found", manager.Online) +time.sleep(3) +manager.Offline() +time.sleep(3) +eth.PoweredOn() +time.sleep(10) +svc = eth.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py new file mode 100755 index 0000000..8c66f86 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOff.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +time.sleep(3) +dev.PoweredOff() +time.sleep(2) +ret=dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py new file mode 100755 index 0000000..28b0932 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_EthPoweredOn.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_EthPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = EthDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +time.sleep(10) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py new file mode 100755 index 0000000..d2b2a6b --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Offline.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Offline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +print 'Set to offline mode...' +manager.Offline() +time.sleep(10) +state = manager.GetOfflineMode() +ret = state == True +print 'Manager OfflineMode is %s' % state +manager.Online() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py new file mode 100755 index 0000000..f914e7e --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Online.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Online +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +print 'Set to Online mode...' +manager.Online() +time.sleep(3) +state = manager.GetOfflineMode() +ret = state == False +print 'Manager OfflineMode is %s' % state +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py new file mode 100755 index 0000000..5ef87df --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_Service.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_Service +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * + +manager.Offline() +time.sleep(3) +service = manager.GetServices() +print service +if not service: + print 'There is no service in an new offline mode' +else: + print 'Service is not empty in offline mode, do you powered on a device?' +manager.Online() +EXIT(not service) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py new file mode 100755 index 0000000..2ce3a95 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiGuest.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiGuest +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +dev.PoweredOn() +dev.Connect(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py new file mode 100755 index 0000000..61a6964 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiIsPoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiIsPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) + +ret = dev.IsPoweredOff() +if ret: + print 'Default powered is off in offline mode' +else: + print 'Powered is on in offline mode' +manager.Online +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py new file mode 100755 index 0000000..f3ba7fc --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiNoPing.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiNoPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +svc = dev.GetService() +ret = svc != None and svc.BroadcastPing() +if ret: + print 'Can ping in offline mode' +manager.Online +EXIT(not ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py new file mode 100755 index 0000000..b2be7ba --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiOnline.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiOnline +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +dev.Connect(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing()) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py new file mode 100755 index 0000000..a8252f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiPoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +manager.Offline() +time.sleep(3) +dev.PoweredOff() +time.sleep(3) +ret = dev.IsPoweredOff() +manager.Online() +time.sleep(1) +dev.PoweredOn() +time.sleep(1) +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py new file mode 100755 index 0000000..51ac918 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/CM_Flt_WiFiPoweredOn.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Flt_WiFiPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Online() +time.sleep(3) +dev = WiFiDevice() +ASSERT(dev.IsExist(), "No device found", manager.Online) +dev.PoweredOn() +time.sleep(3) +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/Flight/cleanup b/ivi/tts-connman-tests/src/Flight/cleanup new file mode 100755 index 0000000..0caa523 --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/cleanup @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Flight/Cleanup + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Startup diff --git a/ivi/tts-connman-tests/src/Flight/startup b/ivi/tts-connman-tests/src/Flight/startup new file mode 100755 index 0000000..c058aaf --- /dev/null +++ b/ivi/tts-connman-tests/src/Flight/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py new file mode 100755 index 0000000..f1b2385 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_BT.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_BT + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('bluetoothd')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py new file mode 100755 index 0000000..1e79e27 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_Boot.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Boot +# +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('connmand')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py new file mode 100755 index 0000000..d268ee5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_OneConnmand.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_OneConnmand + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * +import commands + +daemon = 'connmand' + +if IsDaemonExist(daemon): + ret = commands.getstatusoutput(daemon) + if ret[0] == 0: + EXIT(OneDaemonExist(daemon)) + else: + print "Error occurs when exectuing connmand command" +else: + EXIT(False) + \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py new file mode 100755 index 0000000..53200a3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Bluetooth.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_State_Bluetooth +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + + +dev = Device('Bluetooth', 1, False) +EXIT(dev.IsDisabled()) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py new file mode 100755 index 0000000..4ccd794 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Ethernet.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Ethernet + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = Device('Wired', 1, False) +EXIT(dev.IsEnabled()) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py new file mode 100755 index 0000000..232642a --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_Offlinemode.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_Offlinemode + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.GetOfflineMode()== False) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py new file mode 100755 index 0000000..a8e493a --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_State_WiFi.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_State_WIFI + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = Device('WiFi', 1, False) +EXIT(dev.IsDisabled()) + + + + diff --git a/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py b/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py new file mode 100755 index 0000000..e8510f5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Launch/CM_Launch_WpaSupplicant.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jianghong Shao +# +# Description: CM_Launch_WpaSupplicant + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(IsDaemonExist('wpa_supplican')) \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf b/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf new file mode 100755 index 0000000..e0fd3b6 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-20m.conf @@ -0,0 +1,8 @@ +model = "aal_remote:remote_pyaal -l model.log 'connman-basic.aal'" +adapter = "remote:remote_python -l teststeps.log -c 'from teststeps import *' -c addWifi\(\'Guest\'\)" +heuristic = "lookahead:2" +coverage = "perm:2" +pass = "duration:20 minutes" +on_pass = "exit:0" +on_fail = "exit:1" +on_inconc = "exit:2" diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal b/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal new file mode 100755 index 0000000..08f082d --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-basic.aal @@ -0,0 +1,127 @@ +aal "connman_basic" { + + language: python { + # language "Python" here means that contents of following code blocks + # will contain Python statements. + } + + # The following preview-* settings are understood by fmbt-gteditor. + # They allow hiding or showing variables in visualised model. This helps + # looking at the model in different perspectives. + # + # Try leaving "powered" out to see which test steps should change the + # "connected" value. + # + # preview-show-vars: powered, connected + # preview-depth: 10 + + # The variables block contains a comma-separated list of variables that + # are visible to all code blocks (like initial_state, guard and body). + variables { + technologies, powered, connected, scanned + } + + initial_state { + # The initial_state block sets initial values to the variables + + # Technologies to be tested. This won't be during the test. + # Use any combination of "wifi", "bluetooth", "ethernet". + technologies = set(["wifi"]) + + # Technologies powered up by test steps. + powered = set(["wifi"]) + + # Technologies that have connected services. + connected = set([]) + scanned = False + } + + action "iConnect('wifi')" { + # In this test configuration each action is a Python expression. + # Expressions are evaluated by the remote_python adapter, in a namespace + # where teststeps.py contents have been imported (see connman-basic.conf). + + # The test generator chooses to execute only those actions where guard() + # returns True. + guard() { + return ("wifi" in powered) and (not "wifi" in connected) and scanned + } + + # If an action has been executed successfully by the adapter, + # test generator executes its body(). + # Execution of this body block enables execution of "iDisconnect('wifi')". + # The test generator may execute body blocks to simulate which test steps + # it could execute after them, too. + body() { + connected.add("wifi") + } + } + + action "iDisconnect('wifi')" { + guard() { + return "wifi" in connected + } + body() { + connected.remove("wifi") + } + } + + # An action block can define several actions at once. + # This is convenient if guard() and body() blocks of actions would be + # very similar. + action "iScan('wifi')", "iScan('bluetooth')" { + guard() { + # action_name variable contains a string, either + # "iScan('wifi')" or "iScan('bluetooth')" in this case. + # This extracts the technology from it: + techname = action_name.split("'")[1] + + # This action can be executed if the + # technology name appears in the "powered" set. + return techname in powered + } + body() { scanned = True } + } + + action "iPowerUp('wifi')", "iPowerUp('bluetooth')", "iPowerUp('ethernet')" { + guard() { + techname = action_name.split("'")[1] + return (techname in technologies) and (not techname in powered) + } + body() { + techname = action_name.split("'")[1] + if not techname in powered: + powered.add(techname) + } + } + + action "iPowerDown('wifi')", "iPowerDown('bluetooth')", "iPowerDown('ethernet')" { + guard() { + techname = action_name.split("'")[1] + return techname in powered + } + body() { + techname = action_name.split("'")[1] + if techname in powered: + powered.remove(techname) + if techname in connected: + connected.remove(techname) + scanned = False + } + } + + # Action "iConnected('wifi') == True" requires that the iConnected function + # in teststeps.py will return True in this case. If requirement for the + # return value is not given (as in above actions), the return value is + # ignored. + # Executing an action is not allowed to raise an exception unless + # it is required. For instance, iConnected('xyz') == Error('.*InvalidArgument.*'). + action "iConnected('wifi') == True" { + guard() { return "wifi" in connected } + } + + action "iConnected('wifi') == False" { + guard() { return not "wifi" in connected } + } +} + diff --git a/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf b/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf new file mode 100755 index 0000000..8d69a24 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/fmbt-basic.conf @@ -0,0 +1,8 @@ +model = "aal_remote:remote_pyaal -l model.log 'connman-basic.aal'" +adapter = "remote:remote_python -l teststeps.log -c 'from teststeps import *' -c addWifi\(\'Guest\'\)" +heuristic = "lookahead:2" +coverage = "perm:2" +pass = "no_progress:2" +on_pass = "exit:0" +on_fail = "exit:1" +on_inconc = "exit:2" \ No newline at end of file diff --git a/ivi/tts-connman-tests/src/MBT/teststeps.py b/ivi/tts-connman-tests/src/MBT/teststeps.py new file mode 100755 index 0000000..a07b965 --- /dev/null +++ b/ivi/tts-connman-tests/src/MBT/teststeps.py @@ -0,0 +1,112 @@ +""" +This library implements test steps for ConnMan models. +""" + +import dbus +import fmbt +import time + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("net.connman", "/"), + "net.connman.Manager") + +known_wifis = set([]) + +known_bluetooth = set([]) + +# connected_services is a map: +# technology_name -> service_path +# that contain latest connected technologies and services +connected_services = {} + +g_last_powerup = time.time() + +def addWifi(wifi_name): + global known_wifis + known_wifis.add(wifi_name) + +def addBt(bt_name): + global known_bluetooth + knwn_bluetooth.add(bt_name) + +def iPowerUp(techname): + global g_last_powerup + RETRY_LIMIT = 5 + tech = dbus.Interface(bus.get_object("net.connman", "/net/connman/technology/" + techname), + "net.connman.Technology") + counter = 0 + while 1: + try: + tech.SetProperty("Powered", True) + break # if no exceptions + except Exception, e: + fmbt.adapterlog("Got exception: %s" % (e,)) + if not ("InvalidArguments" in str(e) or "InvalidProperty" in str(e)): + fmbt.adapterlog("BUG: undocumented exception") + counter += 1 + time.sleep(1) + assert counter < RETRY_LIMIT, "Maximum number of retries" + time.sleep(3) + fmbt.adapterlog("tech.GetProperties()['Powered'] = %s" % (tech.GetProperties()["Powered"],)) + assert tech.GetProperties()["Powered"], "Powered == False according to properties" + g_last_powerup = time.time() + +def iPowerDown(techname): + tech = dbus.Interface(bus.get_object("net.connman", + "/net/connman/technology/" + techname), + "net.connman.Technology") + tech.SetProperty("Powered", False) + +def iScan(techname): + tech = dbus.Interface(bus.get_object("net.connman", + "/net/connman/technology/" + techname), + "net.connman.Technology") + if g_last_powerup + 5 > time.time(): + time.sleep(g_last_powerup + 5 - time.time()) + tech.Scan() + +def iConnect(techname): + RETRY_LIMIT = 5 + if techname == "wifi": + can_connect = known_wifis + elif techname == "bluetooth": + can_connect = known_bluetooth + else: + fmbt.adapterlog("Don't know which services to connect via tech %s." % (techname,)) + + # Look for a suitable service (one of known_*) + connect_me = None + counter = 0 + while 1: + found_services = manager.GetServices() + for service_path, properties in found_services: + fmbt.adapterlog(" GetServices(): %s (%s)" % (service_path, properties["Name"])) + if str(service_path).split("/")[-1].startswith(techname) and properties["Name"] in can_connect: + connect_me = service_path + break + if connect_me != None: + break + counter += 1 + assert counter < RETRY_LIMIT, "Maximum number of retries" + fmbt.adapterlog("Known services not found, retrying after 2 second...") + time.sleep(2) + + # Connect to the found service + fmbt.adapterlog('Connecting to service "%s"' % (properties["Name"],)) + service = dbus.Interface(bus.get_object("net.connman", service_path), + "net.connman.Service") + service.Connect(timeout=5000) + connected_services[techname] = service_path + +def iDisconnect(techname): + if techname in connected_services: + service = dbus.Interface(bus.get_object("net.connman", connected_services[techname]), + "net.connman.Service") + service.Disconnect() + +def iConnected(techname): + for service_path, properties in manager.GetServices(): + if properties["Type"] == techname and properties["State"] in ["ready", "online"]: + return True + return False diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py new file mode 100755 index 0000000..176a176 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_ActiveProfile.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + manager.SetProperty('ActiveProfile', path) + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.NotSupported': + print 'This feature is not supported now, please wait...' + EXIT(False) + else: + print e + EXIT(False) + print 'Set ActiveProfile property without error' + properties = manager.GetProperties() + print 'ActiveProfile property value is %s' \ + % properties['ActiveProfile'] + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py new file mode 100755 index 0000000..d09929b --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_Add.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Add +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py new file mode 100755 index 0000000..b6235cb --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_AddExist.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_AddExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + profile = manager.CreateProfile('TestProfile') + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyExists': + print 'Create exist profile trigger error AlreadyExists!' + EXIT(True) + else: + print e + EXIT(False) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py new file mode 100755 index 0000000..f3d95f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_List.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_List +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py new file mode 100755 index 0000000..90c8fa8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_Remove.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Remove +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +properties = manager.GetProperties() + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'profile TestProfile removed!' +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py b/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py new file mode 100755 index 0000000..9813152 --- /dev/null +++ b/ivi/tts-connman-tests/src/Profile/CM_Prof_RemoveNoExist.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_RemoveNoExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'Remove no exist profile TestProfile' +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + if e._dbus_error_name == 'net.connman.Error.NotFound': + print 'Remove none exist profile trigger error NotFound' + EXIT(True) + else: + print e + EXIT(True) +print 'No error happens when remove none exist profile' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py b/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py new file mode 100755 index 0000000..d9664cd --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_ActiveProfile.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['/profile/default'] +EXIT(InListManager('ActiveProfile', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py new file mode 100755 index 0000000..97ea265 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_AvailableTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_AvailableTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManagerM('AvailableTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py new file mode 100755 index 0000000..4b6634f --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_ConnectedTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'wimax', 'cellular'] +EXIT(InListManagerM('ConnectedTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py b/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py new file mode 100755 index 0000000..e49cad2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_DefaultTechnology.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManager('DefaultTechnology', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py new file mode 100755 index 0000000..1c62bd4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_EnabledTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax'] +EXIT(InListManagerM('EnabledTechnologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py b/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py new file mode 100755 index 0000000..96790f8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_OfflineMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListManager('OfflineMode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py b/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py new file mode 100755 index 0000000..6bb7d7a --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_Profiles.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_Profiles +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO Only default? + +value_list = ['/profile/default', '/profile/TestProfile'] +EXIT(InListManagerM('Profiles', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py b/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py new file mode 100755 index 0000000..12d79fc --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_SessionMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListManager('SessionMode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_State.py b/ivi/tts-connman-tests/src/Property/CM_PM_State.py new file mode 100755 index 0000000..0a7a7fa --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_State.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['online', 'offline', 'connected', 'idle', 'ready'] +EXIT(InListManager('State', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py b/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py new file mode 100755 index 0000000..16343f0 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PM_Technologies.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PM_Technologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['/net/connman/technology/ethernet', + '/net/connman/technology/wifi', + '/net/connman/technology/bluetooth', + '/net/connman/technology/3g', + '/net/connman/technology/wimax', + '/net/connman/technology/gps', + '/net/connman/technology/gadget', + '/net/connman/technology/cellular'] +EXIT(InListManagerM('Technologies', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_APN.py b/ivi/tts-connman-tests/src/Property/CM_PS_APN.py new file mode 100755 index 0000000..a69302c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_APN.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_APN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = ['3gwap'] +EXIT(InList3G('APN', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py b/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py new file mode 100755 index 0000000..39c76ac --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_AutoConnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_AutoConnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('AutoConnect', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py b/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py new file mode 100755 index 0000000..589aca2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Domains.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Domains +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# Name servers is not empty + +value_list = [''] +EXIT(not InListWiFiGuest('Domains', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Error.py b/ivi/tts-connman-tests/src/Property/CM_PS_Error.py new file mode 100755 index 0000000..4655231 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Error.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Error +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [''] + +# There should be no Error property, since Guest always success + +EXIT(InListWiFiGuest('Error', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py b/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py new file mode 100755 index 0000000..3976fe4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Favorite.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('Favorite', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py b/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py new file mode 100755 index 0000000..c1ac207 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Immutable.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Immutable +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('Immutable', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py b/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py new file mode 100755 index 0000000..015ee25 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_MCC.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_MCC +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = [''] +EXIT(InList3G('MCC', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py b/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py new file mode 100755 index 0000000..fecceff --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_MNC.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_MNC +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# TODO The field should not be empty + +value_list = [''] +EXIT(InList3G('MNC', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py b/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py new file mode 100755 index 0000000..ec3c17a --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Mode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Mode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['managed'] +EXIT(InListWiFiGuest('Mode', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py b/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py new file mode 100755 index 0000000..27f6702 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Passphrase.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Passphrase +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +# Guest Passphrase is empty + +value_list = [''] +EXIT(InListWiFiGuest('Passphrase', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py b/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py new file mode 100755 index 0000000..963ab9e --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_PassphraseRequired.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_PassphraseRequired +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListWiFiGuest('PassphraseRequired', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Security.py b/ivi/tts-connman-tests/src/Property/CM_PS_Security.py new file mode 100755 index 0000000..3a3e8c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Security.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Security +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [ + 'none', + 'wep', + 'psk', + 'ieee8021x', + 'wpa', + 'rsn', + ] + +dev = WiFiGuestDevice() +svc = dev.GetService() +properties = svc.GetProperties() +key='Security' +items = properties[key] +for item in items: + if item in value_list: + print '%s %s is valid' % (key, item) + EXIT(True) + else: + print '%s %s is invalid' % (key, item) + EXIT(False) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py b/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py new file mode 100755 index 0000000..a6a8f98 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_SetupRequired.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_SetupRequired +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InList3G('SetupRequired', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_State.py b/ivi/tts-connman-tests/src/Property/CM_PS_State.py new file mode 100755 index 0000000..c9df2cf --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_State.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [ + 'ready', + 'idle', + 'failure', + 'association', + 'configuration', + 'login', + 'online', + ] +EXIT(InListWiFiGuest('State', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py b/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py new file mode 100755 index 0000000..c047b00 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Strength.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +dev = WiFiGuestDevice() +#svc = dev.GetService() +#time.sleep(5) +#svc.Disconnect() +#time.sleep(5) +manager.RequestScan('wifi') +time.sleep(5) +value_list = range(101) +EXIT(InListWiFiGuest('Strength', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PS_Type.py b/ivi/tts-connman-tests/src/Property/CM_PS_Type.py new file mode 100755 index 0000000..3d1071d --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PS_Type.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['wifi'] +EXIT(InListWiFiGuest('Type', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py b/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py new file mode 100755 index 0000000..7b3ef7c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Connected.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Connected', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py b/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py new file mode 100755 index 0000000..0bae9d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Powered.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Powered', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py b/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py new file mode 100755 index 0000000..1eb052c --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Tethering.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = [True, False] +EXIT(InListTechnology('Tethering', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_PT_Type.py b/ivi/tts-connman-tests/src/Property/CM_PT_Type.py new file mode 100755 index 0000000..df8eeba --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_PT_Type.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_PS_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * +from property import * + +value_list = ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular'] +EXIT(InListTechnology('Type', value_list)) diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py b/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py new file mode 100755 index 0000000..176a176 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_ActiveProfile.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_ActiveProfile +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + manager.SetProperty('ActiveProfile', path) + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.NotSupported': + print 'This feature is not supported now, please wait...' + EXIT(False) + else: + print e + EXIT(False) + print 'Set ActiveProfile property without error' + properties = manager.GetProperties() + print 'ActiveProfile property value is %s' \ + % properties['ActiveProfile'] + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py b/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py new file mode 100755 index 0000000..d09929b --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_Add.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Add +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py b/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py new file mode 100755 index 0000000..b6235cb --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_AddExist.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_AddExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +print 'Creating profile TestProfile...' +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +print 'TestProfile created, check...' +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + try: + profile = manager.CreateProfile('TestProfile') + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyExists': + print 'Create exist profile trigger error AlreadyExists!' + EXIT(True) + else: + print e + EXIT(False) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_List.py b/ivi/tts-connman-tests/src/Property/CM_Prof_List.py new file mode 100755 index 0000000..f3d95f3 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_List.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_List +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'Found profile TestProfile!' + EXIT(True) + +print 'Not found profile TestProfile!' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py b/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py new file mode 100755 index 0000000..90c8fa8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_Remove.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_Remove +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager +try: + profile = manager.CreateProfile('TestProfile') +except dbus.DBusException, e: + pass +properties = manager.GetProperties() + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'profile TestProfile removed!' +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py b/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py new file mode 100755 index 0000000..9813152 --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/CM_Prof_RemoveNoExist.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Prof_RemoveNoExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +from common import * + +manager = manager.manager + +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + pass + +properties = manager.GetProperties() +profiles = properties['Profiles'] + +for path in profiles: + id = path[path.rfind('/') + 1:] + if id == 'TestProfile': + print 'profile TestProfile still exists!' + EXIT(False) + +print 'Remove no exist profile TestProfile' +try: + manager.RemoveProfile('/profile/TestProfile') +except dbus.DBusException, e: + if e._dbus_error_name == 'net.connman.Error.NotFound': + print 'Remove none exist profile trigger error NotFound' + EXIT(True) + else: + print e + EXIT(True) +print 'No error happens when remove none exist profile' +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/Property/startup b/ivi/tts-connman-tests/src/Property/startup new file mode 100755 index 0000000..6a1f09f --- /dev/null +++ b/ivi/tts-connman-tests/src/Property/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py new file mode 100755 index 0000000..5cca33f --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Connected.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Connected +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('Connected') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py new file mode 100755 index 0000000..1a687e7 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_ConnectedTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('ConnectedTechnologies') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py b/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py new file mode 100755 index 0000000..ef98875 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_DefaultTechnology.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('DefaultTechnology') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py new file mode 100755 index 0000000..8711cfc --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Domains.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1))) + time.sleep(1) + svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Domains Domains.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py new file mode 100755 index 0000000..4684fec --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_EnabledTechnologies.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('EnabledTechnologies') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py new file mode 100755 index 0000000..9ff7eba --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Favorite.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(10) + svc = dev.GetService() + properties = svc.GetProperties() + print 'Favorite = %s' % properties['Favorite'] + svc.Remove() + + +sig = SignalConnman.sig +sig.property_name = 'Favorite' + +common.manager.RequestScan('wifi') +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py b/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py new file mode 100755 index 0000000..10e5ff6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_IPv4.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +from common import * +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + #updated by JH + manager.RequestScan('wifi') + time.sleep(2) + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("dhcp", variant_level=1)}) + +sig = SignalConnman.sig +sig.property_name = 'IPv4 IPv4.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py new file mode 100755 index 0000000..dafba77 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Networks.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Networks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('Networks') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py b/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py new file mode 100755 index 0000000..3199541 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_OfflineMode.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_OfflineMode +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +offline.offline('OfflineMode') + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py new file mode 100755 index 0000000..256e7c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Powered.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py new file mode 100755 index 0000000..9b9714c --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Proxy.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("direct", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("auto", variant_level=1)}) + +sig = SignalConnman.sig +sig.property_name = 'Proxy Proxy.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py b/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py new file mode 100755 index 0000000..6540a49 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_ScanInterval.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_ScanInterval +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + dev = common.WiFiDevice() + properties = dev.GetProperties() + value = properties['ScanInterval'] + dev.device.SetProperty('ScanInterval', dbus.UInt16(value + 50)) + time.sleep(3) + dev.device.SetProperty('ScanInterval', dbus.UInt16(value)) + +sig = SignalConnman.sig +sig.property_name = 'ScanInterval' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py new file mode 100755 index 0000000..4fd0d81 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Scanning.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Scanning +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + time.sleep(2) + common.manager.manager.RequestScan('wifi') + +sig = SignalConnman.sig +sig.property_name = 'Scanning' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py new file mode 100755 index 0000000..154f8dc --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Services.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_Services +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('Services') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_State.py b/ivi/tts-connman-tests/src/Signal/CM_SC_State.py new file mode 100755 index 0000000..113472e --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_State.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +import signal_func + +signal_func.Dis_enable('State') diff --git a/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py b/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py new file mode 100755 index 0000000..256e7c4 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SC_Timeservers.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common +import offline + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalConnman.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py new file mode 100755 index 0000000..66652a8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_ConnectedTechnologies.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_ConnectedTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(2) + print 'Disabling...' + dev.Disable() + time.sleep(2) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'ConnectedTechnologies' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py b/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py new file mode 100755 index 0000000..0077138 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_DefaultTechnology.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_DefaultTechnology +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(20) + print 'Disabling...' + dev.Disable() + time.sleep(3) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'DefaultTechnology' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py b/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py new file mode 100755 index 0000000..b7c9c40 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_EnabledTechnologies.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_EnabledTechnologies +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + dev.Disable() + time.sleep(2) + dev.Enable() + +sig = SignalManager.sig +sig.property_name = 'EnabledTechnologies' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py new file mode 100755 index 0000000..3abe546 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Profiles.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Profiles +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + manager = dev.manager.manager + properties = manager.GetProperties() + default = properties['ActiveProfile'] + print 'default profile is %s' % default + profile = manager.CreateProfile('Test1') + print 'created profile %s' % profile + manager.RemoveProfile(profile) + + +sig = SignalManager.sig +sig.property_name = 'Profiles' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py new file mode 100755 index 0000000..101255a --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Services.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Services +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +import common + +def func(): + dev = common.WiFiDevice() + dev.Disable() + time.sleep(2) + dev.Enable() + + +sig = SignalManager.sig +sig.property_name = 'Services' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_State.py b/ivi/tts-connman-tests/src/Signal/CM_SM_State.py new file mode 100755 index 0000000..34cc3b9 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_State.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_State +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalManager +from common import * + +def func(): + manager.Offline() + time.sleep(2) + manager.Online() + + +sig = SignalManager.sig +sig.property_name = 'State' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(TIMEOUT) + +sig.mainloop.run() +EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py b/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py new file mode 100755 index 0000000..044e774 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SM_Strength.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SM_Strength +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + time.sleep(2) + common.manager.manager.RequestScan('wifi') + + +sig = SignalService.sig +sig.property_name = 'Strength' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py b/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py new file mode 100755 index 0000000..196bbee --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_AutoConnect.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_AutoConnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(2) + service = dev.GetService() + service.SetProperty('AutoConnect', True) + time.sleep(2) + service.SetProperty('AutoConnect', False) + + +sig = SignalService.sig +sig.property_name = 'AutoConnect' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py new file mode 100755 index 0000000..ef9f9b2 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Domains.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1))) + time.sleep(1) + svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalService.sig +sig.property_name = 'Domains Domains.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py new file mode 100755 index 0000000..720eb3b --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Favorite.py @@ -0,0 +1,58 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Favorite +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + time.sleep(20) + svc = dev.GetService() + properties = svc.GetProperties() + print 'Favorite = %s' % properties['Favorite'] + svc.Remove() + + +sig = SignalService.sig +sig.property_name = 'Favorite' + +common.manager.RequestScan('wifi') +trigger=SignalBase.Trigger(func) +trigger.daemon = True +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py b/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py new file mode 100755 index 0000000..a4524d6 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_IPv4.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + svc = dev.GetService() +# svc.svc.SetProperty("IPv4.Configuration", +# { "Method": "manual", "Address": "192.168.1.111"}) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)}) + time.sleep(1) +# svc.svc.SetProperty("IPv4.Configuration", +# { "Method": "dhcp"}) + svc.svc.SetProperty("IPv4.Configuration", + { "Method": dbus.String("dhcp", variant_level=1)}) + dev = common.WiFiGuestDevice() + +sig = SignalService.sig +sig.property_name = 'IPv4 IPv4.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py new file mode 100755 index 0000000..43b0523 --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Passphrase.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SS_Passphrase +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + dev = common.WiFiGuestDevice() + service = dev.GetService() + service.SetProperty('Passphrase', '1111000000') + + +sig = SignalService.sig +sig.property_name = 'PassphraseRequired' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join(common.TIMEOUT) + +sig.mainloop.run() +common.EXIT(sig.my_ret) + diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py new file mode 100755 index 0000000..b6e33ea --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Proxy.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("direct", variant_level=1)}) + time.sleep(1) + svc.svc.SetProperty("Proxy.Configuration", + { "Method": dbus.String("auto", variant_level=1)}) + +sig = SignalService.sig +sig.property_name = 'Proxy Proxy.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py b/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py new file mode 100755 index 0000000..20fe3db --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_SS_Timeservers.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalService +import common + +def func(): + + dev = common.WiFiDevice() + dev.Enable() + dev.ssid=cm_open_ap_essid + svc = dev.GetService() + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga")) + time.sleep(1) + svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s'))) + +sig = SignalService.sig +sig.property_name = 'Timeservers Timeservers.Configuration' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py b/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py new file mode 100755 index 0000000..86aaa4e --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/CM_ST_Powered.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_SC_IPv4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalTechnology +import common +#import offline + +def func(): + + dev = common.WiFiDevice() + dev.Disable() + time.sleep(3) + dev.Enable() + +sig = SignalTechnology.sig +sig.property_name = 'Powered' + +trigger=SignalBase.Trigger(func) +trigger.start() +trigger.join() + +sig.mainloop.run() +common.EXIT(sig.my_ret) diff --git a/ivi/tts-connman-tests/src/Signal/startup b/ivi/tts-connman-tests/src/Signal/startup new file mode 100755 index 0000000..c058aaf --- /dev/null +++ b/ivi/tts-connman-tests/src/Signal/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.EnableTechnology("") diff --git a/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py b/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py new file mode 100755 index 0000000..f02c056 --- /dev/null +++ b/ivi/tts-connman-tests/src/State/CM_State_WIFI_AvialableAP.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Created By JH +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_available_ap["name"], cm_available_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_available_ap["name"]) +finally: + proc.kill() +EXIT(dev.IsConnected()) + +sev = dev.GetService() +EXIT(svc.GetProperty("State") == "online") diff --git a/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py b/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py new file mode 100755 index 0000000..0164499 --- /dev/null +++ b/ivi/tts-connman-tests/src/State/CM_State_WIFI_IsolateAP.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Created By JH +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_isolate_ap["name"], cm_isolate_ap["password"]), shell=True) +dev = WiFiDevice() +try: + dev.Connect(cm_isolate_ap["name"]) +finally: + proc.kill() +EXIT(dev.IsConnected()) + +sev = dev.GetService() +EXIT(svc.GetProperty("State") == "ready") diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py new file mode 100755 index 0000000..74dabd8 --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_BT.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_BT +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + +wifidev = WiFiDevice() +if not wifidev : + print "No WiFi device, case fails" + EXIT(False) +wifidev.Enable() +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) +dev = BTDevice() + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "Enable device" + dev.Enable() + time.sleep(10) + dev.Connect() + if dev.IsConnected(): + print "Bluetooth is connected" + else: + print "Bluetooth is not connected, test fails" + EXIT(FALSE) + time.sleep(40) + print "Diable device" + dev.Disable() + time.sleep(10) + if dev.IsConnected(): + print "Bluetooth is still connected, test fails" + EXIT(FALSE) + else: + print "Bluetooth is not connected" + time.sleep(40) + count += 1 + +EXIT(True) diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py new file mode 100755 index 0000000..77788d5 --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_Flight.py @@ -0,0 +1,78 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_Flight +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + +btdev = BTDevice() +if not btdev : + print "No Bluetooth device, case fails" + EXIT(False) +btdev.Enable() +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +wifidev = WiFiDevice() +if not wifidev : + print "No WiFi device, case fails" + EXIT(False) +wifidev.Enable() +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "offline on" + manager.Offline() + time.sleep(10) + print "offline off" + manager.Online() + time.sleep(10) + count += 1 + +print "Now final check WiFi/Bluetooth status" +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +wifidev.Connect(cm_open_ap_essid) +if not wifidev.IsConnected(): + print "WiFi device is not connected, case fails" + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py b/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py new file mode 100755 index 0000000..a5413eb --- /dev/null +++ b/ivi/tts-connman-tests/src/Stress/CM_Stress_WiFi.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_Stress_WiFi +# + +import sys +import os +import time +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if (len(sys.argv) != 2): + print "Usage: %s ... " % (sys.argv[0]) + EXIT(False) +round = int(sys.argv[1]) + + +btdev = BTDevice() +if not btdev : + print "No Bluetooth device, case fails" + EXIT(False) +btdev.Enable() +btdev.Connect() +if not btdev.IsConnected(): + print "Bluetooth device is not connected, case fails" + EXIT(False) +dev = WiFiDevice() + +count=1 + +while count <= round: + print "At the %s round" % (count) + print "Enable device" + dev.Enable() + time.sleep(10) + dev.Connect(cm_open_ap_essid) + if dev.IsConnected(): + print "Guest is connected" + else: + print "Guest is not connected, test fails" + EXIT(FALSE) + time.sleep(40) + print "Diable device" + dev.Disable() + time.sleep(10) + if dev.IsConnected(): + print "Guest is still connected, test fails" + EXIT(FALSE) + else: + print "Guest is not connected" + time.sleep(40) + count += 1 + +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py new file mode 100755 index 0000000..2dea46a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoConnectFromSuspend.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_AutoConnectFromSuspend +# + +import sys +import time +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +if not dev.IsConnected(): + EXIT(False) +print 'Suspending...' +ret = commands.getstatusoutput('rtcwake -m mem -s 20') +if ret[0] != 0: + print 'rtcwake -m mem -s 20 return fail' + EXIT(False) + +print 'Resume from suspend' +time.sleep(5) +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py new file mode 100755 index 0000000..471584f --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_AutoDelete.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_AutoDelete +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('') +del manager +time.sleep(2) +manager = Manager() +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'wep': + EXIT(False) + +print 'Shutdown the AP' +if manager.TurnAP('off') == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('') +#del manager +#time.sleep(2) +#manager = Manager() +count = 0 +while count < 6: + count = count + 1 + print "try %s times" % count + time.sleep(10) + manager.RequestScan('wifi') + svc = manager.GetServiceByName('shz13-otc-cisco-cm') + if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + manager.TurnAP('on') + EXIT(True) + +manager.TurnAP('on') +EXIT(False) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py new file mode 100755 index 0000000..901401c --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityNone.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityNone +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +manager.RequestScan('wifi') +time.sleep(20) +svc = manager.GetServiceByName(cm_open_ap_essid) +if svc == None: + print 'There is no AP named Guest' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'none': + EXIT(False) + +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py new file mode 100755 index 0000000..59ab0ac --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityRSN.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityRSN +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +print 'Setting AP to wpa psk2(RSN)' +if manager.Apset('sharedsecret', 'psk2', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'psk' and security != 'wpa' and security != 'rsn': + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py new file mode 100755 index 0000000..c1bd01d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWEP.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityWEP +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'wep': + EXIT(False) + +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py new file mode 100755 index 0000000..57bd28d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_DetectSecurityWPA.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_DetectSecurityWPA +# + +import sys +import time +import dbus + +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +print 'Setting AP to wpa psk' +if manager.Apset('sharedsecret', 'psk1', 1, 0, 1) == False: + print 'Cannot access WiFi' + EXIT(False) +manager.RequestScan('wifi') +time.sleep(10) +manager.RequestScan('wifi') +time.sleep(10) +svc = manager.GetServiceByName('shz13-otc-cisco-cm') +if svc == None: + print 'There is no AP named shz13-otc-cisco-cm' + EXIT(False) + +props = svc.GetProperties() +security = props['Security'][0] +print 'Current security mothod is %s' % security +if security != 'psk' and security != 'wpa': + EXIT(False) +EXIT(True) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py new file mode 100755 index 0000000..90fe2d5 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_ForgotPassword.py @@ -0,0 +1,100 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_ForgotPassword +# + +import sys +import time +import dbus +import subprocess +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH + +dev = WiFiDevice() +svc = manager.GetServiceByName(cm_wpa2_ap["name"]) +if not svc == None: + try: + if svc.GetProperty("Favorite"): + svc.Remove() + except dbus.DBusException, error: + pass + +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"] + '1'), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +svc = dev.GetService() +if svc.GetProperty("State") == "failure": + print "The state is %s" % svc.GetProperty("State") + EXIT(True) +else: + print "The state is %s" % svc.GetProperty("State") + EXIT(False) + + +#if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False: +# print 'Cannot access WiFi' +# EXIT(False) +# +#bus = dbus.SystemBus() +# +#manager = dbus.Interface(bus.get_object('net.connman', '/'), +# 'net.connman.Manager') +# +#properties = manager.GetProperties() +# +#for path in properties['Services']: +# service = dbus.Interface(bus.get_object('net.connman', +# path), 'net.connman.Service') +# +# properties = service.GetProperties() +# if properties['Name'] != 'shz13-otc-cisco-cm': +# continue +# print '%s Found with path=%s' % (properties['Name'], path) +# svc = dbus.Interface(bus.get_object('net.connman', path), +# 'net.connman.Service') +# svc.SetProperty('Passphrase', '1111000001') +# try: +# svc.Connect() +# except dbus.DBusException, error: +# pass +# time.sleep(5) +# count=1 +# while count < 5: +# try: +# properties = svc.GetProperties() +# if properties['State'] == 'failure': +# EXIT(True) +# except dbus.DBusException, error: +# pass +# time.sleep(5) +# count = count + 1 +#EXIT(False) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py b/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py new file mode 100755 index 0000000..3bcc7fd --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WA_RememberPasswd.py @@ -0,0 +1,103 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WA_RememberPasswd +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#manager.RequestScan() +#svc = manager.GetServiceByName(cm_wpa2_ap["name"]) +#if svc == None: +# print "There is no AP named %s" % cm_wpa2_ap["name"] +# EXIT(False) +#try: +# if svc.GeProperty("Favorite"): +# svc.Remove() +#except dbus.DBusException, error: +# pass +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +if not dev.IsConnected(): + print "Can't connected to %s with password: %s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"]) + EXIT(False) +try: + dev.Disconnect() +except dbus.DBusException, error: + pass +if dev.IsConnected(): + print "Can't disconnected %s" % cm_wpa2_ap["name"] + +dev.Connect(cm_wpa2_ap["name"]) +EXIT(dev.IsConnected()) + + +#if manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1) == False: +# print 'Cannot access WiFi' +# EXIT(False) +#svc = manager.GetServiceByName('shz13-otc-cisco-cm') +#if svc == None: +# print 'There is no AP named shz13-otc-cisco-cm' +# EXIT(False) +#try: +# svc.Disconnect() +#except dbus.DBusException, error: +# pass +# +#print 'Connecting to Guest Network' +#dev = WiFiGuestDevice() +#svc1 = dev.GetService() +#props = svc1.GetProperties() +#print 'name is %s' % props['Name'] +#if svc1.BroadcastPing(1400): +# print 'Connected' +#else: +# print 'Not connected' +# EXIT(False) +# +#del manager +#manager = Manager() +#svc = manager.GetServiceByName('shz13-otc-cisco-cm') +#if svc == None: +# print 'There is no AP named shz13-otc-cisco-cm' +# EXIT(False) +#print 'Connecting to first AP without providing password' +#svc.Connect() +#if svc.BroadcastPing(1400): +# print 'Connected' +#else: +# print 'Not connected' +# EXIT(False) +# +#EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py new file mode 100755 index 0000000..09ebebf --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel1.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel1 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py new file mode 100755 index 0000000..73f7656 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel10.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel10 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 10) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py new file mode 100755 index 0000000..e1988c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel11.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel11 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 11) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py new file mode 100755 index 0000000..d5339c2 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel2.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel2 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 2) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py new file mode 100755 index 0000000..6169061 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel3.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel3 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 3) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py new file mode 100755 index 0000000..0a9fa40 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel4.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel4 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 4) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py new file mode 100755 index 0000000..6cb0c96 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel5.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel5 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 5) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py new file mode 100755 index 0000000..6a891c3 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel6.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel6 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 6) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py new file mode 100755 index 0000000..a117a63 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel7.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel7 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 7) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py new file mode 100755 index 0000000..c5b89c1 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel8.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel8 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 8) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py new file mode 100755 index 0000000..3d83865 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WF_Channel9.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WF_Channel9 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 9) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py new file mode 100755 index 0000000..e0d3034 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_BigBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_BigBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.BroadcastPing(1400)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py new file mode 100755 index 0000000..ae455ae --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_Connect.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_Connect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py new file mode 100755 index 0000000..c1bdbeb --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_DeviceIsExist.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_DeviceIsExist +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsExist()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py new file mode 100755 index 0000000..16f855f --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_Disconnect.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_Disconnect +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +if dev.IsConnected() == False: + print 'The Wifi is not connected' + Exit(False) + +svc = dev.GetService() +svc.Disconnect() +EXIT(dev.IsConnected() == False) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py new file mode 100755 index 0000000..f0f423e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasDHCP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_HasDHCP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.IsDHCP()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py new file mode 100755 index 0000000..cf3f423 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_HasIP.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_HasIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.HasIP()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py new file mode 100755 index 0000000..7564280 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigDown.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IfconfigDown +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = WiFiGuestDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +ret = dev.ifconfigDown() +if ret == False: + print 'ifconfig down failure is not connman issue' + EXIT(True) +time.sleep(2) +tech = dev.GetTechnology() +properties = tech.GetProperties() +print 'Device Status is now %s' % properties['State'] +dev.ifconfigUP() +time.sleep(2) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py new file mode 100755 index 0000000..b268c90 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IfconfigUp.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IfconfigUp +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +from common import * +dev = WiFiGuestDevice() +dev.ifconfigDown() +time.sleep(2) +ret = dev.ifconfigUP() +if ret == False: + print 'ifconfig up failure is not connman issue' + EXIT(True) +time.sleep(2) +dev = WiFiGuestDevice() +svc = dev.GetService() +if svc.BroadcastPing() != True: + print 'Cannot ping' + EXIT(False) +EXIT(True) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py new file mode 100755 index 0000000..cb50bbe --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsPoweredOn.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsPoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py new file mode 100755 index 0000000..8d9b113 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReEnableWorks.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsReEnableWorks +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsReEnableWorks()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py new file mode 100755 index 0000000..78fcf09 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsReady.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsReady +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +svc = dev.GetService() +EXIT(svc.IsReady()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py new file mode 100755 index 0000000..537ee0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_IsSCPWork.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_IsSCPWork +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +EXIT(dev.IsSCPWork()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py new file mode 100755 index 0000000..2b3bcf7 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOff.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_PoweredOff +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +if dev.IsPoweredOff(): + print 'Device is disabled' + print 'ReEnabled it...' + dev.PoweredOn() +if dev.IsPoweredOff(): + print 'Device is still disabled' + EXIT(False) +dev.PoweredOff() +ret = dev.IsPoweredOff() +dev.PoweredOn() +EXIT(ret) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py new file mode 100755 index 0000000..821b750 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_PoweredOn.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_PoweredOn +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice() +if dev.IsPoweredOn(): + print 'Device is enabled' + print 'Disable it...' + dev.PoweredOff() +if dev.IsPoweredOn(): + print 'Device is still enabled' + EXIT(False) +dev.PoweredOn() +EXIT(dev.IsPoweredOn()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py b/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py new file mode 100755 index 0000000..7dd354a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WG_SmallBroadcastPing.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WG_SmallBroadcastPing +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiGuestDevice(cm_open_ap_essid) +svc = dev.GetService() +EXIT(svc.BroadcastPing(64)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py new file mode 100755 index 0000000..61304d0 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Long.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Long +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('111122223333444455556666111', 'wep128', + 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py new file mode 100755 index 0000000..df68b62 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Short.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Short +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('1111222233334444555566661', 'wep128', 1, + 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py new file mode 100755 index 0000000..4570779 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128Wrong.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128Wrong +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('11112222333344445555666611', 'wep128', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, '11112222333354445555666611', 'wep128', 1, + 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py new file mode 100755 index 0000000..ef542ae --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP128ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP128ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'baaaaaaaaaaaa', 'wep128', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py new file mode 100755 index 0000000..f157880 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Long.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Long +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('11110000000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py new file mode 100755 index 0000000..ecc0cc5 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Short.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Short +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(not manager.ConnectWiFi('111100000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py new file mode 100755 index 0000000..ac9d6c1 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40Wrong.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40Wrong +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('1111000000', 'wep64', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, '1111100000', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py new file mode 100755 index 0000000..bc31f5b --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WN_WEP40ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WN_WEP40ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('6161616161', 'wep64', 1, 0, 1) +EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'aaaab', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py new file mode 100755 index 0000000..eece42a --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Broadcast.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Broadcast +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py new file mode 100755 index 0000000..0810f94 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Hidden.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Hidden +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py new file mode 100755 index 0000000..7e25b41 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Open.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Open +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +# EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) +dev = WiFiDevice() +dev.Connect(cm_open_ap_essid) +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py new file mode 100755 index 0000000..e15c92d --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastRSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastRSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py new file mode 100755 index 0000000..d20eb22 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastTKIP.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastTKIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py new file mode 100755 index 0000000..4126a0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py new file mode 100755 index 0000000..a8f1800 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenBroadcastWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenBroadcastWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py new file mode 100755 index 0000000..d580541 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenRSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenRSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py new file mode 100755 index 0000000..8705c0e --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenTKIP.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenTKIP +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py new file mode 100755 index 0000000..b0c1bb9 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 1, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py new file mode 100755 index 0000000..348af80 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_OpenHiddenWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_OpenHiddenWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py new file mode 100755 index 0000000..8147d62 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK1.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_PSK1 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk1', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py new file mode 100755 index 0000000..8d124ec --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_PSK2.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_PSK2 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py new file mode 100755 index 0000000..3cd0eca --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py new file mode 100755 index 0000000..e45b0ac --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Download.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN_Download +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH + +#dev = WiFiDevice() +#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'rsn', 1, 0, 1) +#EXIT(dev.Download()) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +dev = WiFiDevice() +dev.Connect(cm_wpa2_ap["name"]) +proc.kill() +EXIT(dev.download()) + + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py new file mode 100755 index 0000000..17cbb44 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_RSN_Upload.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_RSN_Upload +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#dev = WiFiDevice() +#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'psk', 1, 0, 1) +#EXIT(dev.Upload()) + +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +dev = WiFiDevice() +dev.Connect(cm_wpa2_ap["name"]) +proc.kill() +EXIT(dev.upload()) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py new file mode 100755 index 0000000..38a6c76 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_Shared.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_Shared +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py new file mode 100755 index 0000000..f01c341 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedBroadcastWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py new file mode 100755 index 0000000..fc0a8fc --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedBroadcastWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedBroadcastWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py new file mode 100755 index 0000000..1022848 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP128.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedHiddenWEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 1, + 1)) + +# manager.Apset("61616161616161616161616161", "wep128", 1, 0, 1) +# EXIT(manager.ConnectAP("11112222333344445555666611", "wep128", 1, 0, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py new file mode 100755 index 0000000..fb36f7b --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_SharedHiddenWEP40.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_SharedHiddenWEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 1, 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py new file mode 100755 index 0000000..b4868a8 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP128 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0, + 1)) diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py new file mode 100755 index 0000000..0fba50c --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP128ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP128ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1) +EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaaaaaaaaaa', 'wep128', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py new file mode 100755 index 0000000..e935fbc --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP40 +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1)) +dev = WiFiDevice() +dev.Connect("test-ivi-wep-ap") +EXIT(dev.IsConnected()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py new file mode 100755 index 0000000..bc276f6 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP40ascii.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP40ascii +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +manager.Apset('6161616161', 'wep64', 1, 0, 1) +EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaa', 'wep64', 1, 0, 1)) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py new file mode 100755 index 0000000..4853a08 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Download.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Download +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1) +EXIT(dev.Download()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py new file mode 100755 index 0000000..104ec10 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WEP_Upload.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WEP_Upload +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +dev = WiFiDevice() +manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1) +EXIT(dev.Upload()) + diff --git a/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py b/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py new file mode 100755 index 0000000..da79852 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/CM_WS_WPA.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: CM_WS_WPA +# + +import sys +import os +import subprocess +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +from common import * + +#Updated By JH +#EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1)) +os.chdir(os.path.dirname(sys.argv[0])) +proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True) +os.chdir(os.getcwd()) +dev = WiFiDevice() +try: + dev.Connect(cm_wpa2_ap["name"]) +finally: + proc.kill() + +EXIT(dev.IsConnected()) diff --git a/ivi/tts-connman-tests/src/WiFi/cleanup b/ivi/tts-connman-tests/src/WiFi/cleanup new file mode 100755 index 0000000..cd01845 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/cleanup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2008-2009 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.Cleanup() diff --git a/ivi/tts-connman-tests/src/WiFi/simple-agent b/ivi/tts-connman-tests/src/WiFi/simple-agent new file mode 100755 index 0000000..01c82ba --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/simple-agent @@ -0,0 +1,357 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.service +import dbus.mainloop.glib +import sys + +class Canceled(dbus.DBusException): + _dbus_error_name = "net.connman.Error.Canceled" + +class LaunchBrowser(dbus.DBusException): + _dbus_error_name = "net.connman.Agent.Error.LaunchBrowser" + +class Agent(dbus.service.Object): + name = None + ssid = None + identity = None + passphrase = None + wpspin = None + username = None + password = None + + @dbus.service.method("net.connman.Agent", + in_signature='', out_signature='') + def Release(self): + print("Release") + mainloop.quit() + + def input_passphrase(self): + response = {} + + if not self.identity and not self.passphrase and not self.wpspin: + print "Service credentials requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Identity="): + identity = arg.replace("Identity=", "", 1) + response["Identity"] = identity + if arg.startswith("Passphrase="): + passphrase = arg.replace("Passphrase=", "", 1) + response["Passphrase"] = passphrase + if arg.startswith("WPS="): + wpspin = arg.replace("WPS=", "", 1) + response["WPS"] = wpspin + break + else: + if self.identity: + response["Identity"] = self.identity + if self.passphrase: + response["Passphrase"] = self.passphrase + if self.wpspin: + response["WPS"] = self.wpspin + + return response + + def input_username(self): + response = {} + + if not self.username and not self.password: + print "User login requested, type cancel to cancel" + print "or browser to login through the browser by yourself." + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel") or arg.startswith("browser"): + response["Error"] = arg + if arg.startswith("Username="): + username = arg.replace("Username=", "", 1) + response["Username"] = username + if arg.startswith("Password="): + password = arg.replace("Password=", "", 1) + response["Password"] = password + else: + if self.username: + response["Username"] = self.username + if self.password: + response["Password"] = self.password + + return response + + def input_hidden(self): + response = {} + + if not self.name and not self.ssid: + args = raw_input('Answer ') + + for arg in args.split(): + if arg.startswith("Name="): + name = arg.replace("Name=", "", 1) + response["Name"] = name + break + if arg.startswith("SSID="): + ssid = arg.replace("SSID", "", 1) + response["SSID"] = ssid + break + else: + if self.name: + response["Name"] = self.name + if self.ssid: + response["SSID"] = self.ssid + + return response + + @dbus.service.method("net.connman.Agent", + in_signature='oa{sv}', + out_signature='a{sv}') + def RequestInput(self, path, fields): + print "RequestInput (%s,%s)" % (path, fields) + + response = {} + + if fields.has_key("Name"): + response.update(self.input_hidden()) + if fields.has_key("Passphrase"): + response.update(self.input_passphrase()) + if fields.has_key("Username"): + response.update(self.input_username()) + + if response.has_key("Error"): + if response["Error"] == "cancel": + raise Canceled("canceled") + return + if response["Error"] == "browser": + raise LaunchBrowser("launch browser") + return + + print "returning (%s)" % (response) + + return response + + @dbus.service.method("net.connman.Agent", + in_signature='os', + out_signature='') + def RequestBrowser(self, path, url): + print "RequestBrowser (%s,%s)" % (path, url) + + print "Please login through the given url in a browser" + print "Then press enter to accept or some text to cancel" + + args = raw_input('> ') + + if len(args) > 0: + raise Canceled("canceled") + + return + + @dbus.service.method("net.connman.Agent", + in_signature='os', + out_signature='') + def ReportError(self, path, error): + print "ReportError %s, %s" % (path, error) + retry = raw_input("Retry service (yes/no): ") + if (retry == "yes"): + class Retry(dbus.DBusException): + _dbus_error_name = "net.connman.Agent.Error.Retry" + + raise Retry("retry service") + else: + return + + + @dbus.service.method("net.connman.Agent", + in_signature='', out_signature='') + def Cancel(self): + print "Cancel" + +class VpnAgent(dbus.service.Object): + name = None + host = None + cookie = None + username = None + password = None + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='', out_signature='') + def Release(self): + print("Release VPN agent") + + def input_cookie(self): + response = {} + + if not self.cookie: + print "VPN credentials requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Cookie="): + cookie = arg.replace("Cookie=", "", 1) + response["OpenConnect.Cookie"] = cookie + else: + if self.cookie: + response["OpenConnect.Cookie"] = self.cookie + + return response + + def input_username(self): + response = {} + + if not self.username and not self.password: + print "User login requested, type cancel to cancel" + args = raw_input('Answer: ') + + for arg in args.split(): + if arg.startswith("cancel"): + response["Error"] = arg + if arg.startswith("Username="): + username = arg.replace("Username=", "", 1) + response["Username"] = username + if arg.startswith("Password="): + password = arg.replace("Password=", "", 1) + response["Password"] = password + else: + if self.username: + response["Username"] = self.username + if self.password: + response["Password"] = self.password + + return response + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='oa{sv}', + out_signature='a{sv}') + def RequestInput(self, path, fields): + print "RequestInput (%s,%s)" % (path, fields) + + response = {} + + if fields.has_key("OpenConnect.Cookie"): + response.update(self.input_cookie()) + if fields.has_key("Username") or fields.has_key("Password"): + response.update(self.input_username()) + + if response.has_key("Error"): + if response["Error"] == "cancel": + raise Canceled("canceled") + return + + print "returning (%s)" % (response) + + return response + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='os', + out_signature='') + def ReportError(self, path, error): + print "ReportError %s, %s" % (path, error) + retry = raw_input("Retry service (yes/no): ") + if (retry == "yes"): + class Retry(dbus.DBusException): + _dbus_error_name = "net.connman.vpn.Agent.Error.Retry" + + raise Retry("retry service") + else: + return + + + @dbus.service.method("net.connman.vpn.Agent", + in_signature='', out_signature='') + def Cancel(self): + print "Cancel" + +def vpnNameOwnerChanged(proxy): + if proxy: + print("vpnd is connected to system bus") + try: + path = "/test/vpn_agent" + vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn', + "/"), + 'net.connman.vpn.Manager') + vpn_manager.RegisterAgent(path) + except: + print "vpn agent is not registered" + else: + print("vpnd is disconnected from system bus") + vpn_manager = None + +def print_usage(): + print "Usage:" + print "For hidden service:" + print "%s Name= [SSID=]" % (sys.argv[0]) + print "For EAP/WPA input:" + print "%s Identity= Passphrase= WPS=" % (sys.argv[0]) + print "For WISPr login, L2TP or PPTP input:" + print "%s Username= Password=" % (sys.argv[0]) + print "For OpenConnect input:" + print "%s Cookie=" % (sys.argv[0]) + print "Help: %s help" % (sys.argv[0]) + sys.exit(1) + +if __name__ == '__main__': + if len(sys.argv) == 2 and sys.argv[1] == "help": + print_usage() + + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + manager = dbus.Interface(bus.get_object('net.connman', "/"), + 'net.connman.Manager') + + path = "/test/agent" + object = Agent(bus, path) + + try: + vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn', "/"), + 'net.connman.vpn.Manager') + vpn_path = "/test/vpn_agent" + vpn_object = VpnAgent(bus, vpn_path) + except: + vpn_manager = None + print "net.connman.vpn is not present" + + if len(sys.argv) >= 2: + for arg in sys.argv[1:]: + if arg.startswith("Name="): + object.name = arg.replace("Name=", "", 1) + elif arg.startswith("SSID="): + object.ssid = arg.replace("SSID=", "", 1) + elif arg.startswith("Identity="): + object.identity = arg.replace("Identity=", "", 1) + elif arg.startswith("Passphrase="): + object.passphrase = arg.replace("Passphrase=", "", 1) + elif arg.startswith("WPS="): + object.wpspin = arg.replace("WPS=", "", 1) + elif arg.startswith("Username="): + object.username = arg.replace("Username=", "", 1) + vpn_object.username = arg.replace("Username=", "", 1) + elif arg.startswith("Password="): + object.password = arg.replace("Password=", "", 1) + vpn_object.password = arg.replace("Password=", "", 1) + elif arg.startswith("Cookie="): + vpn_object.cookie = arg.replace("Cookie=", "", 1) + else: + print_usage() + + try: + manager.RegisterAgent(path) + except: + print "Cannot register connman agent." + + if vpn_manager != None: + try: + vpn_manager.RegisterAgent(vpn_path) + bus.watch_name_owner('net.connman.vpn', vpnNameOwnerChanged) + except: + "Cannot register vpn agent" + + mainloop = gobject.MainLoop() + mainloop.run() + + #manager.UnregisterAgent(path) diff --git a/ivi/tts-connman-tests/src/WiFi/startup b/ivi/tts-connman-tests/src/WiFi/startup new file mode 100755 index 0000000..4919b09 --- /dev/null +++ b/ivi/tts-connman-tests/src/WiFi/startup @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/../common" +sys.path.append(dir) +from common import * + + +manager.StartupWiFi() diff --git a/ivi/tts-connman-tests/src/common/SignalBase.py b/ivi/tts-connman-tests/src/common/SignalBase.py new file mode 100755 index 0000000..1e428d8 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalBase.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Functions used all signal test cases +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib + + +from threading import Thread + +def f( + name, + value, + path, + interface, + ): + + print 'In f' + + +func = f + + +class SignalBase: + + def __init__(self): + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + bus = dbus.SystemBus() + print 'Add signal receiver' + self.Add_Signal_Receiver(bus) + print 'Add signal receiver done' + self.mainloop = gobject.MainLoop() + self.my_ret = False + self.record = 0 + + def Add_Signal_Receiver(self, bus): + pass + + def property_changed( + self, + name, + value, + path=None, + interface=None, + ): + +# print 'Changed property name = %s path = %s interface = %s' \ +# % (name, path, interface) + + if name in self.property_name: + print 'Changed property name = %s path = %s interface = %s' \ + % (name, path, interface) + self.my_ret = True + self.mainloop.quit() +# else: +# print "The property %s for %s %s didn't changed" % (name, path, interface) +# self.my_ret = False +# self.mainloop.quit() + +class Trigger(Thread): + def __init__ (self,func): + Thread.__init__(self) + self.func = func + Thread.daemon = True + def run(self): + self.func() + diff --git a/ivi/tts-connman-tests/src/common/SignalConnman.py b/ivi/tts-connman-tests/src/common/SignalConnman.py new file mode 100755 index 0000000..a184a35 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalConnman.py @@ -0,0 +1,80 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when testing signal in Connman +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed( + name, + value, + path, + interface, + ): + + func(name, value, path, interface) + + +class SignalConnman(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + path_keyword='path', + interface_keyword='interface') + + def property_changed( + self, + name, + value, + path, + interface, + ): + + SignalBase.property_changed(self, name, value, path, interface) + + +sig = SignalConnman() +from common import * + + +def signal_connman( + name, + value, + path, + interface, + ): + + sig.property_changed(name, value, path, interface) + + +func = signal_connman diff --git a/ivi/tts-connman-tests/src/common/SignalManager.py b/ivi/tts-connman-tests/src/common/SignalManager.py new file mode 100755 index 0000000..d36326c --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalManager.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when property in Manager changes +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value): + func(name, value) + + +class SignalManager(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + dbus_interface='net.connman.Manager' + ) + + def property_changed(self, name, value): + SignalBase.property_changed(self, name, value) + + +sig = SignalManager() +from common import * + + +def signal_manager(name, value): + sig.property_changed(name, value) + + +func = signal_manager diff --git a/ivi/tts-connman-tests/src/common/SignalService.py b/ivi/tts-connman-tests/src/common/SignalService.py new file mode 100755 index 0000000..64df239 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalService.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions when property in Service +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value, path): + func(name, value, path, None) + + +class SignalService(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + print 'Added Signal' + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + dbus_interface='net.connman.Service' + , signal_name='PropertyChanged', + path_keyword='path') + + def property_changed( + self, + name, + value, + path, + interface=None, + ): + + SignalBase.property_changed(self, name, value, interface) + + +sig = SignalService() +from common import * + + +def signal_service( + name, + value, + path, + interface, + ): + + sig.property_changed(name, value, path, interface) + + +func = signal_service diff --git a/ivi/tts-connman-tests/src/common/SignalTechnology.py b/ivi/tts-connman-tests/src/common/SignalTechnology.py new file mode 100755 index 0000000..62b50cd --- /dev/null +++ b/ivi/tts-connman-tests/src/common/SignalTechnology.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: Signal functions used when property in Manager changes +# + +import time +import gobject + +import dbus +import dbus.mainloop.glib +from SignalBase import * + + +def property_changed(name, value): + func(name, value) + + +class SignalTechnology(SignalBase): + + def __init__(self): + SignalBase.__init__(self) + + def Add_Signal_Receiver(self, bus): + bus.add_signal_receiver(property_changed, + bus_name='net.connman', + signal_name='PropertyChanged', + dbus_interface='net.connman.Technology' + ) + + def property_changed(self, name, value): + SignalBase.property_changed(self, name, value) + + +sig = SignalTechnology() +from common import * + + +def signal_technology(name, value): + sig.property_changed(name, value) + + +func = signal_technology diff --git a/ivi/tts-connman-tests/src/common/bearer.sh b/ivi/tts-connman-tests/src/common/bearer.sh new file mode 100755 index 0000000..05fe279 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/bearer.sh @@ -0,0 +1,27 @@ +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Authors: +# Wang, Jing J +# Changlog: +# +#!/bin/sh + +if [ -z "$1" ]; then + echo "Warning: Please specify execution command" + exit 1 +fi + +#Find default user, assuming the one who launch Xorg +usr=`ps -C libsocialweb-core -o user=` +if [ $? -ne 0 ]; then + echo "Error: Fail to get Libsocialweb user" + exit 1 +fi + +su -l $usr -c "export DISPLAY=:0.0;CM_Bearer=$1 /opt/tts-connman-tests/Bearer $2" diff --git a/ivi/tts-connman-tests/src/common/common.py b/ivi/tts-connman-tests/src/common/common.py new file mode 100755 index 0000000..980022a --- /dev/null +++ b/ivi/tts-connman-tests/src/common/common.py @@ -0,0 +1,1228 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common functions used in all test cases +# + +import dbus +import string +import commands +import time +import re +import subprocess +import os, sys +from config import * +from threading import Timer + +#chagne timeout from 90 to 360 +TIMEOUT = 300 + +################################################### +# ........Common Function +################################################### + +def common_timeout(): + print "Oops Timeout!!!" + os.system("(sleep 1; killall `basename " + sys.argv[0] + "`)") + +def cmd_exists(cmd): + return os.path.exists(cmd) +# return subprocess.call(["which", cmd], +# stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0 + + +def IPIsValid(ip): + return re.match("(\d\d?\d?\.){3}\d\d?\d?", ip) != None + + +def MacAddrIsValid(mac): + return re.match("([a-fA-F0-9]{2}[:|\-]?){5}[a-fA-F0-9]{2}", mac) \ + != None + + +def EXIT(ret): + if ret == True: + print 'Test Case PASS' + else: + print 'Test Case FAIL' + exit(ret != True) + +def EXIT1(ret, op): + if ret == True: + op() + print 'Test Case PASS' + else: + op() + print 'Test Case FAIL' + exit(ret != True) + +def ASSERT(ret, msg, op): + if ret == False: + op() + print msg + print 'Test Case FAIL' + exit(ret != True) + +def IsDaemonExist(daemon): + command = "ps aux|grep %s" %(daemon) + ret = commands.getstatusoutput(command) + output = ret[1].split('\n') + for item in output[:]: + if item.find('grep %s' %(daemon)) != -1: + output.remove(item) + if ret[0] == 0 and len(output) > 0: + print "Daemon is %s" %(output) + return True + else: + print "daemon %s is not lauched" %(daemon) + return False + +def OneDaemonExist(daemon): + command = "ps aux|grep %s" %(daemon) + ret = commands.getstatusoutput(command) + output = ret[1].split('\n') + for item in output[:]: + if item.find('grep %s' %(daemon)) != -1: + output.remove(item) + if ret[0] == 0 and len(output) == 1: + print "Daemon is %s" %(output) + return True + else: + return False + + +################################################### +# ........Class Manager +################################################### + + +class Manager: + + def __init__(self): + self.bus = dbus.SystemBus() + if self.bus == None: + print 'There is no dbus, please check' + EXIT(False) + self.manager = \ + dbus.Interface(self.bus.get_object('net.connman', '/' + ), 'net.connman.Manager') + if self.manager == None: + print 'There is no connmand...do you startup connmand?' + EXIT(False) + print 'Attached to a connman manager' + self.properties = self.manager.GetProperties() + self.LatestSvc = None + + def GetTechnologies(self): + return self.manager.GetTechnologies() + + def GetServices(self): + return self.manager.GetServices() + + def GetProperties(self): + return self.manager.GetProperties() + + def GetServices(self): + return self.manager.GetServices() + + def SetProperty(self, name, value): + self.manager.SetProperty(name, value) + print 'Set Manager property %s = %s' % (name, value) + + def GetState(self): + properties = self.GetProperties() + return properties["State"] + + def GetOfflineMode(self): + properties = self.GetProperties() + return properties["OfflineMode"] + + def CreateProfile(self, name): + print 'Create profile %s' % name + return self.manager.CreateProfile(name) + + def RemoveProfile(self, path): + print 'Removing profile %s ...' % path + self.manager.RemoveProfile(path) + print 'Removed' + + def RequestScan(self, type): + if type == '': + print 'Scanning for all technologies...' + type = 'wifi' + else: + print 'Scanning for %s technology...' % type + bus = dbus.SystemBus() + path = "/net/connman/technology/" + type + technology = dbus.Interface(bus.get_object("net.connman", path), + "net.connman.Technology") + technology.Scan() + print 'Done' + + def EnableTechnology(self, type): + self.Online() + if type == '': + print 'EnableTechnology for all technologies...' + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + print 'Enabling %s...' % tech + try: + technology.SetProperty("Powered", True) + except dbus.DBusException, e: + pass + +# print 'EnableTechnology for all technologies...' +# props = self.manager.GetProperties() +# for tech in props['EnabledTechnologies']: +# path = "/net/connman/technology/" + tech +# technology = manager.GetSubObject(path, 'Technology') +# print 'Enabling %s...' % tech +# try: +# technology.SetProperty("Powered", True) +# except dbus.DBusException, e: +# pass + + else: + print 'EnableTechnology for %s technology...' % type + path = "/net/connman/technology/" + type + technology = manager.GetSubObject(path, 'Technology') + try: + technology.SetProperty("Powered", True) + except dbus.DBusException, e: + pass + time.sleep(5) + print 'Done' + + def DisableTechnology(self, type): + if type == '': + print 'DisableTechnology for all technologies...' + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + print 'Enabling %s...' % tech + try: + technology.SetProperty("Powered", False) + except dbus.DBusException, e: + pass +# props = self.manager.GetProperties() +# for tech in props['EnabledTechnologies']: +# path = "/net/connman/technology/" + tech +# technology = manager.GetSubObject(path, 'Technology') +# print 'Disabling %s...' % tech +# try: +# technology.SetProperty("Powered", False) +# except dbus.DBusException, e: +# pass + +# try: +# self.manager.DisableTechnology(tech) +# except dbus.DBusException, e: +# pass + else: + print 'DisableTechnology for %s technology...' % type +# try: +# self.manager.DisableTechnology(type) +# except dbus.DBusException, e: +# pass + path = "/net/connman/technology/" + type + technology = manager.GetSubObject(path, 'Technology') + try: + technology.SetProperty("Powered", False) + except dbus.DBusException, e: + pass + + + time.sleep(5) + print 'Done' + + def Startup(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('wifi') + time.sleep(10) + + def StartupWiFi(self): + self.Startup() + + def StartupEthernet(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + + def Startup3G(self): + self.DisableTechnology('') + self.EnableTechnology('cellular') + time.sleep(10) + + def StartupBT(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('bluetooth') + time.sleep(10) + + def Cleanup(self): + self.DisableTechnology('') + self.EnableTechnology('ethernet') + eth = EthDevice() + time.sleep(10) + self.EnableTechnology('wifi') + time.sleep(5) + + def RegisterAgent(self, path): + print 'RegisterAgent for path' + self.manager.RegisterAgent(path) + + def UnregisterAgent(self, path): + print 'UnregisterAgent for path' + self.manager.UnregisterAgent(path) + + def RegisterCounter(self, path, interval): + print 'RegisterCounter for path' + self.manager.RegisterCounter(path, interval) + + def UnregisterCounter(self, path): + print 'UnregisterCounter for path' + self.manager.UnregisterCounter(path) + + def RequestSession(self, bearer): + print 'Request a networking session for %s' % bearer + return self.manager.RequestSession(bearer) + + def ReleaseSession(self): + print 'Release a networking session' + return self.manager.ReleaseSession() + + def Offline(self): + self.SetProperty('OfflineMode', dbus.Boolean(1)) + + def Online(self): + self.SetProperty('OfflineMode', dbus.Boolean(0)) + + def GetSubObject(self, path, name): + interface = 'net.connman.' + name + self.subobj = \ + dbus.Interface(self.bus.get_object('net.connman', + path), interface) + return self.subobj + + def ConnectService( + self, + ssid, + passphrase='', + security='none', + ): + + print 'Connect to Service %s with passphrase = %s security = %s...' \ + % (ssid, passphrase, security) + try: + path = self.manager.ConnectService({ + 'Type': 'wifi', + 'Mode': 'managed', + 'SSID': ssid, + 'Security': security, + 'Passphrase': passphrase, + }) + except dbus.DBusException, e: + return None + print 'Connected to %s' % path + return path + + + # ConnectWiFi: Connect to an WiFi AP with relative params + # passphrase: passphrase string + # security: wep64/wep128/psk/psk1/psk2/wpa/rsn/wep64s/wep128s + # open: 0: shared 1: open + # hidden: 0: broadcast 1: hidden + # channel: 1 - 11 + def ConnectWiFi( + self, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + if self.Apset(passphrase, security, open, hidden, channel): + return self.ConnectAP(cm_apset_ap_essid, passphrase, security, + open, hidden, channel) + return False + def TurnAP(self, state): + apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path + if state == 'on': + apset_cmd = apset_cmd + ' activate' + else: + apset_cmd = apset_cmd + ' shutdown' + + ret = commands.getstatusoutput(apset_cmd) + time.sleep(5) + if ret[0] != 0: + print 'Command %s return fail' % apset_cmd + return False + print 'apset done' + return True + + # Apset: Setting AP with relative params + # Parameter values are same as ConnectWiFi + def Apset( + self, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + print 'Setting AP...' + apstr = ' MODE N2.4-ONLY ' + apstr += ' CHANNEL ' + `channel` + if open == 1: + apstr += ' AUTH open ' + else: + apstr += ' AUTH shared ' + if hidden == 0: + apstr += ' BCAST enable ' + else: + apstr += ' BCAST disable ' + if security == 'wep64': + apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `passphrase` + elif security == 'wep128': + apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' + `passphrase` + if security == 'wep64s': + apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `4141414141` + elif security == 'wep128s': + apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' \ + + `41414141414141414141414141` + elif security == 'psk': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'psk1': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'psk2': + apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES ' + elif security == 'wpa': + apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP ' + elif security == 'rsn': + apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES ' + print 'apset string is %s' % apstr + apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path \ + + apstr + ret = commands.getstatusoutput(apset_cmd) + if ret[0] != 0: + print 'Command %s return fail' % apset_cmd + return False + print 'apset done' + print 'Enable/Disable wifi to refresh ap list' + manager.DisableTechnology('wifi') + time.sleep(3) + manager.EnableTechnology('wifi') + time.sleep(3) + + return True + + # Refer to ConnectWiFi + def ConnectAP( + self, + essid=cm_apset_ap_essid, + passphrase='', + security='psk', + open=1, + hidden=0, + channel=1, + ): + print 'Connecting to AP...' + sec = '' + if security == 'wep64': + sec = 'wep' + elif security == 'wep128': + sec = 'wep' + if security == 'wep64s': + sec = 'wep' + passphrase = 's:AAAAA' + elif security == 'wep128s': + sec = 'wep' + passphrase = 's:AAAAAAAAAAAAA' + elif security == 'psk': + sec = 'psk' + elif security == 'psk1': + sec = 'psk' + elif security == 'psk2': + sec = 'psk' + elif security == 'wpa': + sec = 'wpa' + elif security == 'rsn': + sec = 'rsn' + self.manager.RequestScan('wifi') + time.sleep(2) + path = self.ConnectService(essid, passphrase, + sec) + print 'essid is %s passphrase is %s sec is %s' % (essid, passphrase, sec) + time.sleep(5) + print 'path is %s' % path + if path == None: + print "ConnectService failed" + return None + i = 1 + while i < 3: + svc = self.GetService(path) + if svc == None: + continue + if svc.IsReady(): + self.LatestSvc = svc + break + else: + svc.Connect() + time.sleep(5) + i += 1 + time.sleep(5) + return svc.BroadcastPing() + + def GetService(self, path=None): + if path == None: + return self.LatestSvc + service = None + self.LatestSvc = None + try: + service = \ + dbus.Interface(self.bus.get_object('net.connman' + , path), 'net.connman.Service') + except dbus.DBusException, e: + return None + time.sleep(1) + svc = Service(service) + print 'Service %s found' % path + self.LatestSvc = svc + return svc + + #Updated By JH +# def GetServiceByName(self, Name): +# props = self.GetProperties() +# for path in props['Services']: +# service = \ +# dbus.Interface(self.bus.get_object('net.connman' +# , path), 'net.connman.Service') +# properties = service.GetProperties() +# if properties['Name'] == Name: +# svc = Service(service) +# return svc +# return None + def GetServiceByName(self, Name): + services = self.GetServices() + for path, props in services: + service = dbus.Interface(self.bus.get_object('net.connman' + , path), 'net.connman.Service' + ) + properties = service.GetProperties() + + if properties['Name'] == Name: + return Service(service) + + +def ManagerObjectIsReady(): + if manager.bus == None: + print 'There is no dbus' + return False + if manager.manager == None: + print 'There is no connman, please check if there is connmand' + return False + return True + + +def ManagerSubObjectIsReady(name): + SubObjectNameMap = {'Service': 'Services', + 'Technology': 'Technologies', + 'Profile': 'Profiles'} + name1 = SubObjectNameMap[name] + for path in manager.properties[name1]: + print path + service = manager.GetSubObject(path, name) + if service != None: + print 'There is at least one %s, the testing success!' \ + % name + return True + print 'We cannot find any %s object, the testing fails!' % name + return False + + +def ServiceObjectIsReady(): + return ManagerSubObjectIsReady('Service') + + +def TechnologyObjectIsReady(): + return ManagerSubObjectIsReady('Technology') + + +def ProfileObjectIsReady(): + return ManagerSubObjectIsReady('Profile') + + +################################################### +# ........Class Service +################################################### + +class Service: + + def __init__(self, svc): + self.svc = svc + + def GetProperties(self): + try: + self.properties = self.svc.GetProperties() + except dbus.DBusException, e: + return None + return self.properties + + def GetProperty(self, name): + props = self.GetProperties() + if name in props.keys(): + return props[name] + return None + + def SetProperty(self, name, value): + print 'Set Service property %s = %s' % (name, value) + try: + self.svc.SetProperty(name, value) + except dbus.DBusException, e: + return False + + def ClearProperty(self, name): + try: + self.svc.ClearProperty(name) + except dbus.DBusException, e: + return False + + def Connect(self): + if self.svc == None: + print 'No such service' + return False + print 'Connecting...' + loop = 1 + while loop < 3: + try: + self.svc.Connect() + except dbus.DBusException, e: + if e._dbus_error_name \ + == 'net.connman.Error.AlreadyConnected': + print 'The service is already connected' + return True + elif e._dbus_error_name \ + == 'net.connman.Error.InProgress': + loop = loop + 1 + print 'Still in connecting' + time.sleep(10) + continue + else: + print e + return False + time.sleep(20) + if self.IsReady(): + print 'Connected' + time.sleep(20) + return True + else: + print 'Not connected' + return False + + def Disconnect(self): + try: + self.svc.Disconnect() + except dbus.DBusException, e: + return False + + def Remove(self): + try: + self.svc.Remove() + except dbus.DBusException, e: + return False + + def MoveBefore(self, service): + try: + self.svc.MoveBefore(service) + except dbus.DBusException, e: + return False + + def MoveAfter(self, service): + try: + self.svc.MoveAfter(service) + except dbus.DBusException, e: + return False + + def IsReady(self): + try: + self.properties = self.svc.GetProperties() + except dbus.DBusException, e: + return False + state = self.properties['State'] + return state == 'ready' or state == 'online' or state == 'login' + + # Basically we can get response through broadcast + def BroadcastPing(self, size=0): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + count = 0 + while count < 5: + ip = self.GetIP() + if ip != None: + break + time.sleep(5) + count += 1 + if ip == None: + return False + ip1 = ip.split('.') + bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.255' + if size != 0: + ping_string = 'ping -c 5 -s %s -b %s' % (size, bip) + else: + ping_string = 'ping -c 5 -b %s' % bip + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + if ret[0] == 0: + return True + # Guess if there is a machine xxx.xxx.xxx.1 + bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.1' + if size != 0: + ping_string = 'ping -c 5 -s %s -b %s' % (size, bip) + else: + ping_string = 'ping -c 5 -b %s' % bip + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + if ret[0] == 0: + return True + + try: + if self.Ping(64, self.GetGateway()): + return True + if self.Ping(64, self.GetNameserver()): + return True + except dbus.DBusException, e: + pass + # ping otc-qa, an ugly solution :-( + if self.Ping(64, cm_ping_server_ip): + return True + # Unfortuanately sometime test environment does not set + # ping response server, and even filter icmp. + # Since this function just test IP address work + # So just check some properties are set by dhcp + try: + if (self.GetGateway() != None): + return True + if (self.GetNameserver() != None): + return True +# if (self.GetDomains() != None): +# return True + except dbus.DBusException, e: + pass + + return False + + # If connected to Internet, we can always connect to www.intel.com + def Ping(self, size=0, hostname='www.intel.com'): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + if size != 0: + ping_string = 'ping -c 5 -s %s %s' % (size, hostname) + else: + ping_string = 'ping -c 5 %s' % hostname + ret = commands.getstatusoutput(ping_string) + print '%s return %s' % (ping_string, ret[0]) + return ret[0] == 0 + + def GetIP(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if 'IPv4' not in self.properties.keys(): + print 'No IPv4 properties' + return None + + if len(self.properties['IPv4']) == 0: + print 'Cannot get IPv4 for this device' + return None + return self.properties['IPv4']['Address'] + + def GetNameserver(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if "Nameservers" not in self.properties.keys(): + print 'Cannot get Nameservers for this device' + return None + return self.properties['Nameservers'][0] + + def GetGateway(self): + self.properties = self.GetProperties() + if self.properties == None: + return None + if "Gateway" not in self.properties['IPv4'].keys(): + print 'Cannot get Gateway for this device' + return None + return self.properties['IPv4']['Gateway'] + + def HasIP(self): + ip = self.GetIP() + if ip == None: + return False + print 'IP address is %s' % ip + return IPIsValid(ip) + + def IsDHCP(self): + self.properties = self.GetProperties() + if self.properties == None: + return False + method = self.properties['IPv4']['Method'] + print 'IPv4 Method of the service is %s' % method + return method == 'dhcp' + + def IsFixed(self): + self.properties = self.GetProperties() + if self.properties == None: + return False + method = self.properties['IPv4']['Method'] + print 'IPv4 Method of the service is %s' % method + return method == 'fixed' + + +################################################### +# ........Class Device +# The base class for Device, real device will +# derived from this class +################################################### + + +class Device: + + def __init__(self, name, nth, enable = True): + self.device = None + self.intf = None + self.tech = None +# for path in manager.properties['Technologies']: + for (path, properties) in manager.GetTechnologies(): + print path + technology = manager.GetSubObject(path, 'Technology') + properties = technology.GetProperties() + if "Name" not in properties.keys() or properties['Name'] != name: + continue + i = 1 + self.manager = manager + self.tech = technology + self.name = name + self.type = properties['Type'] + print 'Got it: %s' % path + if enable: + manager.EnableTechnology(self.type) + return + print 'No such device!' + + def GetProperties(self): + return self.tech.GetProperties() + + def SetProperty(self, name, value): + print 'Set Device property %s = %s' % (name, value) + self.tech.SetProperty(name, value) + + def GetService(self, servicename=None): + #properties = self.manager.GetProperties() + #for path in properties['Services']: + # service = dbus.Interface(self.manager.bus.get_object('net.connman' + # , path), 'net.connman.Service' + # ) +# self.manager.RequestScan(self.type) + services = self.manager.GetServices() + for path,props in services: + service = dbus.Interface(self.manager.bus.get_object('net.connman' + , path), 'net.connman.Service' + ) + properties = service.GetProperties() +# if "Name" in properties.keys() and servicename!=None: +# if servicename != properties["Name"]: +# continue + if servicename!=None: + if "Name" not in properties.keys(): + continue + if servicename != properties["Name"]: + continue + else: + if self.type != properties["Type"]: + continue + svc = Service(service) + print 'Service %s found' % path + return svc + + print 'Service not found' + return None + + def GetTechnology(self): + return self.tech + + def GetInterface(self): + if self.intf: + return self.intf + svc = self.GetService() + props1 = svc.GetProperties() + props = props1['Ethernet'] + print props + key = 'Interface' + if key in props.keys(): + self.intf = props['Interface'] + print 'There is the key Interface' + return self.intf + return None + + def ifconfigUP(self): + intf = self.GetInterface() + if intf == None: + print 'The device interface name is empty, cannot ifconfig' + return False + cmd = 'ifconfig ' + intf + ' up' + ret = commands.getstatusoutput(cmd) + print '%s returns %s' % (cmd, ret[0]) + if ret[0] != 0: + return False + return True + + def ifconfigDown(self): + intf = self.GetInterface() + if intf == None: + print 'The device interface name is empty, cannot ifconfig' + return False + cmd = 'ifconfig ' + intf + ' down' + ret = commands.getstatusoutput(cmd) + print '%s return %s' % (cmd, ret[0]) + if ret[0] != 0: + return False + return True + + def PoweredOff(self): + '''Powered off device''' + props = self.GetProperties() + type = props['Type'] + print "Disable %s" % type + manager.DisableTechnology(type) + time.sleep(1) + + def Disable(self): + self.PoweredOff() + + def PoweredOn(self): + '''Powered on device''' + + props = self.GetProperties() + type = props['Type'] + print "Enable %s" % type + manager.EnableTechnology(type) + time.sleep(1) + + def Enable(self): + self.PoweredOn() + + def IsPoweredOff(self): + properties = self.tech.GetProperties() + print 'Device Powered state is %s' % properties['Powered'] + return properties['Powered'] == False + + def IsDisabled(self): + return self.IsPoweredOff() + + def IsExist(self): + return self.tech != None + + def IsPoweredOn(self): + properties = self.tech.GetProperties() + print 'Device Powered state is %s' % properties['Powered'] + return properties['Powered'] + + def IsEnabled(self): + return self.IsPoweredOn() + + def HasIP(self): + service = self.GetService() + return service != None and service.HasIP() + + def IsConnected(self): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + service = self.GetService() + return service != None and service.BroadcastPing() + + def IsSCPWork(self): + print 'scp to server' + ret = commands.getstatusoutput(cm_scp_download) + if ret[0] != 0: + print 'scp failed' + return False + print 'scp success' + print 'scp from server' + ret = commands.getstatusoutput(cm_scp_upload) + if ret[0] != 0: + print 'scp failed' + return False + print 'scp success' + commands.getstatusoutput(cm_ssh_rm) + commands.getstatusoutput(cm_rm) + return True + + def IsReEnableWorks(self): + if self.IsEnabled(): + self.Disable() + self.Enable() + return self.IsEnabled() + + def Upload(self, cmd): + print "Uploading file with %s" % (cmd) + ret = commands.getstatusoutput(cmd) + if ret[0] == 0: + print "Upload success!" + else: + print "Upload failed!" + print ret + return ret[0] == 0 + + def Download(self, cmd): + print "Downloading file with %s" % (cmd) + ret = commands.getstatusoutput(cmd) + if ret[0] == 0: + print "Download success!" + else: + print "Download failed!" + print ret + return ret[0] == 0 + + def Connect(self): + self.GetService().Connect() + + def Disconnect(self): + self.GetService().Disconnect() + +class EthDevice(Device): + + def __init__(self): + Device.__init__(self, 'Wired', 1) + svc = self.GetService() + if svc == None: + return + svc.Connect() + + def Upload(self): + return (Device.Upload(self, cm_eth_upload)) + + def Download(self): + return (Device.Download(self, cm_eth_download)) + + +class WiFiDevice(Device): + + def __init__(self): + Device.__init__(self, 'WiFi', 1) + self.ssid = cm_open_ap_essid + + def GetService(self): + service = Device.GetService(self, self.ssid) + if service == None: + return service + properties = service.GetProperties() + if properties['Name']: + print 'WiFi essid is %s' % properties['Name'] + else: + print 'There is no essid' + return service + + def Connect( + self, + ssid, + passphrase='', + security='none', + ): + self.ssid = ssid + service = self.GetService() + if service: + properties = service.GetProperties() + if ssid == properties['Name']: + if properties['State'] in ['ready', 'online', 'login']: + print 'The service is already in state %s' \ + % properties['State'] + return True +# device_path = manager.ConnectService(ssid) + time.sleep(10) + #service = Device.GetService(self, ssid) + service = self.GetService() + if service == None: + services = self.manager.GetServices() + for path, props in services: + service_ = dbus.Interface(self.manager.bus.get_object('net.connman' + , path), 'net.connman.Service') + print service_ + properties_ = service_.GetProperties() + + if properties_["Favorite"] == True and properties_["Type"] == 'wifi': + print "remove favoirte service: %s" % service_ + service_.Remove() + + scan_times = 0 + while scan_times < 3 and service == None: + time.sleep(60) + self.manager.RequestScan('wifi') + time.sleep(10) + service = self.GetService() + scan_times += 1 + + properties = service.GetProperties() + if properties['State'] in ['ready', 'online', 'login']: + print 'state is %s' % properties['State'] + return True + service.Connect() + + count = 0 + while count < 10: + properties = service.GetProperties() + if properties['State'] in ['ready', 'online', 'login']: + print 'state is %s' % properties['State'] + return True + count = count + 1 + time.sleep(5) + print 'Current state is not ready' + return False + + def Disconnect(self): + service = self.GetService() + service.Disconnect() + + def Upload(self): + return (Device.Upload(self, cm_wifi_upload)) + + def Download(self): + return (Device.Download(self, cm_wifi_download)) + + +class C3GDevice(Device): + + def __init__(self): + Device.__init__(self, '3G', 1) + + def GetService(self): + props = manager.GetProperties() + for path in props['Services']: + service = \ + dbus.Interface(manager.bus.get_object('net.connman' + , path), 'net.connman.Service') + + properties = service.GetProperties() + for key in properties.keys(): + if key == 'Mode' and properties['Mode'] == 'gprs': + svc = Service(service) + return svc + return None + + def Connect(self): + service = Device.GetService(self) + if service == None: + return False + service.Connect() + count = 0 + while count < 10: + properties = service.GetProperties() + if properties['State'] == 'online': + print 'state is %s' % properties['State'] + return True + count = count + 1 + time.sleep(5) + return False + + def BroadcastPing(self, size=0): + service = self.GetService() + if service == None: + return True + loop = 0 + while loop < 5: + state = service.GetProperty('state') + if state == 'online': + break + time.sleep(10) + loop = loop + 1 + return service.Ping() + + def IsConnected(self): + if cmd_exists("/bin/ping") == False: + return self.HasIP() + return self.BroadcastPing() + + def Upload(self): + return (Device.Upload(self, cm_3g_upload)) + + def Download(self): + return (Device.Download(self, cm_3g_download)) + + +class BTDevice(Device): + + def __init__(self): + Device.__init__(self, 'Bluetooth', 1) + + def Connect(self): + service = Device.GetService(self) + service.Connect() + + def Upload(self): + return (Device.Upload(self, cm_bt_upload)) + + def Download(self): + return (Device.Download(self, cm_bt_download)) + +class WiFiGuestDevice(WiFiDevice): + + def __init__(self, ssid=cm_open_ap_essid): + WiFiDevice.__init__(self) + service = Device.GetService(self, self.ssid) + print 'Now connect...' + self.Enable() +# service.Connect() + WiFiDevice.Connect(self, cm_open_ap_essid) + +class WiFiSecDevice(WiFiDevice): + def __init__(self, essid, key): + WiFiDevice.__init__(self) + self.Enable() + self.ssid = essid + self.service = Device.GetService(self, self.ssid) + self.service.SetProperty("Passphrase", key) + + def GetService(self): + return self.service + + def Connect(self): + service = self.GetService() + service.Connect() + + def Disconnect(self): + service = self.GetService() + service.Disconnect() + +try: + #change the time out from 180 to 360 + t = Timer(300, common_timeout) + t.daemon = True + t.start() +except: + print "oops" +manager = Manager() + diff --git a/ivi/tts-connman-tests/src/common/config.py b/ivi/tts-connman-tests/src/common/config.py new file mode 100755 index 0000000..793b493 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/config.py @@ -0,0 +1,90 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common code to check the value of a property +# + +# The control server that connects to AP, so that test script can +# set AP parameters through apset script +cm_apset_server = "192.168.x.x" + +# The full path of the apset script in control server +cm_apset_server_path= "/usr/local/bin/apset/cisco/apset" + +cm_apset_ap_essid = "test-apset-ap" + +# The essid of AP, this must be same as in apset script +cm_open_ap_essid = 'test-ivi-open-ap' +cm_wep_ap = {"name" : "test-ivi-wep-ap", "password" : "1234567890"} +cm_wpa2_ap = {"name" : "test-ivi-wpa2-ap", "password" : "12345678"} +cm_isolate_ap = {"name" : "test-ivi-isolate-ap", "password" : "12345678"} +cm_available_ap = {"name" : "test-ivi-avalible-ap", "password" : "12345678"} + + +# For data transfer testing, we need a peer machine for upload/download +# Since different test environment has different upload/download method +# this test suite just defines configurable varibles for each technology +# Tester should re-configure these varibles, otherwise the result is wrong +# Data Server(peer machin) IP address +cm_data_server_ip_bt='192.168.x.x' +cm_data_server_ip_wifi='192.168.x.x' +#cm_data_server_ip_eth='192.168.x.x' +cm_data_server_ip_eth='192.168.x.x' + +#cm_bt_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +#cm_bt_download = 'scp 127.0.0.1:/usr/share/tts-connman-tests/10M /tmp' +#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 127.0.0.1:/tmp' +cm_bt_download = 'scp ' + cm_data_server_ip_bt + ':/usr/share/tts-connman-tests/10M /tmp' +cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M ' + cm_data_server_ip_bt + ':/tmp' + +cm_eth_download = 'scp ' + cm_data_server_ip_eth + ':/opt/tts-connman-tests/data/apset.tgz /tmp' +cm_eth_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_eth + ':/tmp' +#cm_eth_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_eth_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +# For 3G, We will directly connect to Internet. So we can download +# from Internet. But tester need find a way to upload to Internet so +# that upload test case works +# Download from Internet, ChangeLog-2.6.33 is about 7.5MB +cm_3g_download = 'wget --no-proxy http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.33' +# Upload to local, please revise accordingly so that to upload +# to Internet automatically +cm_3g_upload = 'curl -x "" --ftp-pasv -v -T /usr/share/tts-connman-tests/10M ftp://anonymous:tizen3gtest@ftp.x.x/pub/incoming/' + +# For WiFi, we test data transfer for WEP and PSK. These essids are only used +# for data transfer. Test cases in test set WiFiFeature still need a cisco AP +cm_ap_essid_wep64 = 'test-ivi-wep64-ap' # AP set to shared hidden wep64 +cm_ap_wep64_key = '1111111111' +cm_ap_essid_psk = 'test-ivi-psk-ap' # AP set to open broadcast RSN PSK +cm_ap_psk_key = '1111111111' +#cm_wifi_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp' +#cm_wifi_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp' +cm_wifi_download = 'scp ' + cm_data_server_ip_wifi + ':/opt/tts-connman-tests/data/apset.tgz /tmp' +cm_wifi_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_wifi + ':/tmp' + +# Give one IP address that in the same network with test devices and AP, using Ping command to check network is accessible +cm_ping_server_ip = '192.168.x.x' + +# For testing whether scp network is workable +cm_scp_download = 'scp test@x.x.x:1M /tmp/1M.1' +cm_scp_upload = 'scp /tmp/1M.1 test@x.x.x:/tmp/1M.2' +cm_ssh_rm = 'ssh test@x.x.x rm /tmp/1M.2' +cm_rm = 'rm /tmp/1M.1' diff --git a/ivi/tts-connman-tests/src/common/offline.py b/ivi/tts-connman-tests/src/common/offline.py new file mode 100755 index 0000000..73ab2dc --- /dev/null +++ b/ivi/tts-connman-tests/src/common/offline.py @@ -0,0 +1,55 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: offline function used in signal +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func(): + time.sleep(2) + manager = common.manager + manager.Offline() + time.sleep(5) + manager.Online() + +def offline(Name): + sig = SignalConnman.sig + sig.property_name = Name + + trigger=SignalBase.Trigger(func) + trigger.start() + trigger.join(common.TIMEOUT) + + sig.mainloop.run() + common.EXIT(sig.my_ret) + + diff --git a/ivi/tts-connman-tests/src/common/property.py b/ivi/tts-connman-tests/src/common/property.py new file mode 100755 index 0000000..bd6b3e7 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/property.py @@ -0,0 +1,127 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: common code to check the value of a property +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject + +import dbus +import dbus.mainloop.glib + +from common import * + + +def InListWiFiGuest(key, list): + dev = WiFiGuestDevice() + svc = dev.GetService() + properties = svc.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + if list == ['']: + return True + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InList3G(key, list): + dev = C3GDevice() + svc = dev.GetService() + properties = svc.GetProperties() + if key in properties.keys(): + item = properties[key] + else: + item = '' + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InListManager(key, list): + properties = manager.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + + +def InListManagerM(key, list): + properties = manager.GetProperties() + print properties + if key in properties.keys(): + items = properties[key] + else: + print 'Property %s does not exist' % key + return False + print 'items is %s' % items + for item in items: + print 'item is %s' % item + if item in list: + print '%s %s is valid' % (key, item) + else: + print '%s %s is invalid' % (key, item) + return False + + return True + + +def InListTechnology(key, list): + for (path, properties) in manager.GetTechnologies(): + technology = manager.GetSubObject(path, 'Technology') + break + properties = technology.GetProperties() + print properties + if key in properties.keys(): + item = properties[key] + else: + print 'Property %s does not exist' % key + return False + if item in list: + print '%s %s is valid' % (key, item) + return True + else: + print '%s %s is invalid' % (key, item) + return False + diff --git a/ivi/tts-connman-tests/src/common/signal_func.py b/ivi/tts-connman-tests/src/common/signal_func.py new file mode 100755 index 0000000..906eef4 --- /dev/null +++ b/ivi/tts-connman-tests/src/common/signal_func.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (C) 2010 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# +# Authors: +# Jeff Zheng +# +# Description: signal_func +# + +import sys +import os +dir=os.path.dirname(sys.argv[0])+"/common" +sys.path.append(dir) +import time +import gobject +import dbus +import dbus.mainloop.glib +import SignalBase +import SignalConnman +import common + +def func1(): + time.sleep(2) + dev = common.WiFiDevice() + dev.Disable() + time.sleep(5) + dev.Enable() + time.sleep(5) + +def Dis_enable(name): + sig = SignalConnman.sig + sig.property_name = name + trigger=SignalBase.Trigger(func1) + trigger.start() + trigger.join(common.TIMEOUT) + sig.mainloop.run() + common.EXIT(sig.my_ret) + +def func2(): + time.sleep(2) + dev = common.WiFiDevice() + dev.device.SetProperty(set_name, dbus.UInt16(value)) + +def Check_By_Set_Prop(name, set_name, value): + sig = SignalConnman.sig + sig.property_name = name + trigger=SignalBase.Trigger(func2) + trigger.start() + trigger.join(common.TIMEOUT) + sig.mainloop.run() + common.EXIT(sig.my_ret) + + diff --git a/ivi/tts-connman-tests/tests.xml b/ivi/tts-connman-tests/tests.xml new file mode 100755 index 0000000..88ba23c --- /dev/null +++ b/ivi/tts-connman-tests/tests.xml @@ -0,0 +1,1178 @@ + + + + + + + + + + 1. boot system +2. 'ps aux|grep connmand' +3. check if there is a thread named connmand in background + There should be one thread named connmand in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_Boot.py + + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check ethernet State according to followin table +platform ethernet State +Upstream offline +Netbook enabled +IVI enabled +TV enabled +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Ethernet.py + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + OfflineMode is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Offlinemode.py + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep connmand' +3. the connmand should be in background +4. command 'su -' +5. command 'connmand' +6. check if the second connmand can be generated +7. ps -ef |grep -i connman + Step 7 shows there is only one connmand running. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_OneConnmand.py + + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep bluetoothd' +3. check if there is a thread named bluetoothd in background + There should be one thread named bluetoothd in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_BT.py + + + Netbook + IVI + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check bluetooth State according to followin table +platform bluetooth State +Upstream offline +Netbook offline +IVI offline +TV offline +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Bluetooth.py + + Netbook + IVI + TV + + + + + Must be first time to launch connman, that is: +rm -f /var/lib/connman/* +install connman rpm +reboot + + + + 1. test-manager + In Technologies section, check WiFi State according to followin table +platform WiFi State +Upstream offline +Netbook enabled +IVI enabled +TV enabled +handset offline + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_WiFi.py + + Netbook + IVI + TV + + + + + + + + + 1. boot system +2. 'ps aux|grep wpa_supplicant' +3. check if there is a thread named wpa_supplicant in background + There should be one thread named wpa_supplicant in background + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_WpaSupplicant.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. test-connman list +2. Check if there is BT service +3. test-connman disable bluetooth +4. 'test-connman list' shows there is no BT service +5. test-connman enable bluetooth +6. 'test-connman list' shows there is the BT service +7. test-connman connect <bt service> +8. ping PANU server + Can ping PANU server + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsReEnableWorks.py + + + Netbook + IVI + + + + + + + + + 1. Run 'test-manager' +2. In section Technologies of the output Check the powered 'State' of bluetooth is 'true' + The powered 'State' of bluetooth is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsPoweredOn.py + + + Netbook + IVI + + + + + + + + + 1. test-connman disable bluetooth and check if powered state is 'false' by 'test-manager' +2. test-connman enable bluetooth +3. Check if powered state is 'true' by 'test-manager' + The value is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOn.py + + + Netbook + IVI + + + + + + + + + 1. test-manager shows the powered state of bluetooth is 'true' +2. test-connman disable bluetooth +3. test-manager shows the powered state of bluetooth is 'false' + The value is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOff.py + + + Netbook + IVI + + + + + + + + + 1. test-manager +2. There is a bluetooth technology + There is bluetooth technology + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_DeviceIsExist.py + + + Netbook + IVI + + + + + + + + + + + 1. Set AP in Open mode +2. Connect to the AP + Can get IP and ping the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_Open.py + + + Netbook + IVI + TV + + + + + + + + + 1. Set AP in WPA TKIP mode +2. Connect to the AP + Can get IP and ping the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_WPA.py + + + Netbook + IVI + TV + + + + + + + + + 1. Connect to AP with password +2. Disconnect to the AP +3. Connect to the same AP without password +4. ConnMan should remember the password and can connect to the AP + ConnMan should remember the password and can connect to the AP + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_RememberPasswd.py + + + Netbook + IVI + TV + + + + + + + + + 1. Connect to AP with wrong password +2. The error property of the service will show error reason. +# According to developer ConnMan just report error in error property but the passphrase will not be empty + Error property is set. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_ForgotPassword.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Get Guest service +2. Check if Nameservers is not empty + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Nameservers.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Type of the Technology is in ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Type.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Powered is in [True, False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Powered.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Strength is 0-100 + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Strength.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if SessionMode property is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_SessionMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Security is in ['none' 'wep' 'psk' 'ieee8021x' 'wpa' 'rsn'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Security.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if OfflineMode property is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_OfflineMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Manager interface +2. Check if State property is in ['online' 'offline' 'connected'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Connected is in [True, False] + As expected + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Connected.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if AutoConnect is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_AutoConnect.py + + + Mobile + Netbook + TV + + + + + + + + + 1. Get Guest service +2. Check if Name is in ['Wired', 'WiFi', 'WiMAX', 'Bluetooth', 'Cellular'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Name.py + + + Mobile + Netbook + TV + + + + + + + + + 1. Get Guest service +2. Check if State is in ['ready' 'idle' 'failure' 'association' 'configuration' 'login' 'online'] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Tethering is in [True, False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Tethering.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Type of the service is 'WiFi' + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Type.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Domains is not empty + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Domains.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Error is not in properties since Guest connect always success + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Error.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Name is 'Guest' + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Name.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Favorite is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get Guest service +2. Check if Immutable is in [True False] + : + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Immutable.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + + + 1. Get the technology list from connman +2. Get the ethernet technology +3. Get the device from ethernet technology +4. Check if the device is null + There is ethernet device + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Eth_DeviceIsExist.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Make sure there is Guest WiFi network +2. Powered off the device +3. Check if we can ping Guest WiFi network + Ping cannot receive any response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_Disconnect.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. connect-service Guest +2. Get Guest WiFi IP address (ifconfig or list-service) +3. ping -c 5 -s 64 <AP address> + Receives ping response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_SmallBroadcastPing.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + "Run Instructions +1. test-manager shows the powered state of wifi is 'true' +2. test-connman disable wifi +3. test-manager shows the powered state of wifi is 'false' +Pass/Fail Criteria: The value is 'false' + The value is 'false' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOff.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. test-connman list +2. Check if there is Guest wifi service +3. test-connman disable wifi +4. 'test-connman list' shows there is no wifi service +5. test-connman enable wifi +6. 'test-connman list' shows there is the wifi Guest service +7. connect-service Guest +8. ping a machine in Guest network + ping response + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsReEnableWorks.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get the Powered status of WiFi device +2. Check the Powered status is On + The Powered status is on + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsPoweredOn.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. test-connman disable wifi and check if powered state is 'false' by 'test-manager' +2. test-connman enable wifi +3. Check if powerd state is 'true' by 'test-manager' + The value is 'true' + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOn.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. connect-service Guest +2. Get Guest WiFi IP address (ifconfig or list-service) +3. ping -c 5 -s 1400 <AP address> + Ping will receive response. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_BigBroadcastPing.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Get the technology list from connman +2. Get the WiFi technology +3. Get the device from WiFi technology +4. Check if the device is null + There is WiFi device + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_DeviceIsExist.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + + + 1. Prepare an wifi AP that can be connected and can surf internet by this AP +2. Only connect to this WIFI AP and make sure that it can surf internet by this service +3. Check the connection state for this AP service + The state should be 'online' for this connected WIFI AP. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_State_WIFI_AvialableAP.py + + + Netbook + IVI + TV + + + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Powered off/on WiFi device +2.2 Connect to Guest WiFi network +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_IPv4.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Connect to Guest WiFi network service +2.2 Remove the serivce +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_IPv4.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Favorite.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set Service.AutoConnect to off +2.2 Set Service.AutoConnect to on +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_AutoConnect.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Powered off the device +2.2 sleep 5 seconds and Powered on the device +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_State.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Connected.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set connman to offline mode +2.2 sleep 5 seconds and set connman to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_OfflineMode.py + + + Mobile + Netbook + IVI + TV + + + + + + + + + 1. Set property_changed call back +2. Using following way to make the property changed +2.1 Set offline mode +2.2 sleep 5 seconds and set to online mode +3. Check if the property_changed called. + The callback function is called. + + + /usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SM_State.py + + + Mobile + Netbook + IVI + TV + + + + diff --git a/packaging/common-connectivity-suite.spec b/packaging/common-connectivity-suite.spec new file mode 100755 index 0000000..fc6246a --- /dev/null +++ b/packaging/common-connectivity-suite.spec @@ -0,0 +1,95 @@ +%define _unpackaged_files_terminate_build 0 + +Name: common-connectivity-suite +Summary: common-connectivity-suite +Version: 0.1.0 +Release: 1 +License: GPLv2 +Group: Development/Testing +Source0: %{name}-%{version}.tar.gz + + +%description +This package is IVI common connectivity test suite + +%package -n tts-bluez-tests +Summary: Bluez test suit +Group: Development/Testing + +%description -n tts-bluez-tests +%{summary}. + + +%package -n tts-connman-tests +Summary: Connman test suit +Group: Development/Testing + +%description -n tts-connman-tests +%{summary}. + +%prep +%setup -q + +%build + +%install + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server + +install -m 0755 ivi/tts-bluez-tests/src/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests +install -m 0755 ivi/tts-bluez-tests/data/client/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data +cp -fr ivi/tts-bluez-tests/data/server/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server +install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests + + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + +install -m 0755 ivi/tts-connman-tests/src/3G/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/BM/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/BT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/common/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Ethernet/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Flight/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Launch/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/MBT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Profile/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Property/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Signal/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/State/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/Stress/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ +install -m 0755 ivi/tts-connman-tests/src/WiFi/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/ + +install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data +install -m 0755 ivi/tts-connman-tests/data/apset.tgz %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data + +install -m 0755 ivi/tts-connman-tests/network.jpg %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + +install -m 0755 ivi/tts-connman-tests/bisect.sh %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install -m 0755 ivi/tts-connman-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install -m 0755 ivi/tts-connman-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests +install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests + + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -n tts-bluez-tests +%defattr(-,root,root) +%{_datadir}/tests/%{name}/tts-bluez-tests +%license LICENSE + +%files -n tts-connman-tests +%defattr(-,root,root) +%{_datadir}/tests/%{name}/tts-connman-tests +%license LICENSE + +%changelog +* Fri May 23 2014 Wu dawei 0.1.0-1 + - Initial common connectivity suite test +