--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null
+-----------------------
+ Introduction
+-----------------------
+This suite is to test Bluez stack.
+# Usage for each file (under tts-bluez-tests folder):
+<sub-folder> <usage>
+src source file of the cases
+data/client shared scripts and data on the client side for testing
+data/server entire folder should be copied to server machine.
+ Run server_startup.sh on the server to set up
+ a daemon to communicate with Client.
+
+# Needed package/command
+pygobject --- python binding for gobject used by pairing script
+ data/client/auto_accept_agent
+md5sum --- to check the file consistence after FTP transfering.
+bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part)
+When PANU case is running, server should install bridge-utils to create a network bridge as PAN server.
+
+-----------------------
+Install and Run
+-----------------------
+ (if you don't have testkit-lite, you can get it from https://github.com/testkit/testkit-lite)
+Steps:
+precondition: We need to use two machine, one is server and another is your testing machine as client.
+ Setup Server environment by three steps as "Test Environment" describe (Please see next section)
+ Then, rest steps are on testing machine; bluez-test package is needed on testing machine.
+Build case:
+
+1. rpm -ivh tts-bluez-tests-0.1.0-1.i386.rpm --- install RPM to your testing machine
+
+To run cases, you can either do step.2 or step.3
+2. cd /usr/share/tests/common-connectivity-suite/tts-bluez-tests and run any sh file by root account.
+3. testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-bluez-tests/tests.xml --comm localhost -o ./results.xml
+
+
+
+-----------------------
+Test Environment
+-----------------------
+1. Setup Server daemon (recommend to use ubuntu-12.04 system)
+ copy tts-bluez-tests/data/server folder to server machine to /home/USER, run ./bt_pan_server_setup.sh as root to enable PAN server, then run ./server_startup.sh as normal user to enable agent for pairing and OBEX server.
+
+2. Do confirm your client machine has no old pairing with the server machine, or it will
+ affect most of the cases.
+
+3. [On client] install bluez-test package on client, config the environment file: data/client/bluetooth_env:
+DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/
+AUTO_AGENT --- the place for agent which used for pairing
+SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81"
+
+4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user.
+
+-----------------------
+Known Issues
+-----------------------
+For server setup, do please use ubuntu-12.04 system, because:
+* Fedora does not contain OBEX.
+* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug)
+Do please use "su -" to switch to root account for validation.
+Note: you can report the defects of this test suite to jingke.zhang@intel.com
+
+-----------------------
+TODO
+-----------------------
--- /dev/null
+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
--- /dev/null
+#!/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")
--- /dev/null
+#!/bin/sh
+#
+# Copyright (C) 2010, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Set environment variable here to specify the BT autotest server's MAC address
+SERV_BD_ADDR="00:0A:94:03:EC:CD"
+# Server type, we support "computer", "headset", "phone" and "keyboard or mouse" here.
+SERV_BD_TYPE="computer"
+tmp_file="tmp"
+tmp1_file="tmp1"
+
+DATA_DIR="/usr/lib/bluez/test"
+AUTO_AGENT="./data"
+user=`whoami`
+if [ "${user}" = "root" ]; then
+ AGENT="${DATA_DIR}/simple-agent"
+ FTP_CLIENT="${DATA_DIR}/ftp-client"
+ PBAP_CLIENT="${DATA_DIR}/pbap-client"
+ TEST_ADAPTER="${DATA_DIR}/test-adapter"
+ TEST_DEVICE="${DATA_DIR}/test-device"
+ TEST_DISCOVER="${DATA_DIR}/test-discovery"
+ HCICONFIG="hciconfig"
+ KILLPANEL="killall dawati-panel-bluetooth"
+ KILLAGENT="killall bluetooth-agent"
+else
+ AGENT="sudo ${DATA_DIR}/simple-agent"
+ FTP_CLIENT="sudo ${DATA_DIR}/ftp-client"
+ PBAP_CLIENT="sudo ${DATA_DIR}/pbap-client"
+ TEST_ADAPTER="sudo ${DATA_DIR}/test-adapter"
+ TEST_DEVICE="sudo ${DATA_DIR}/test-device"
+ TEST_DISCOVER="sudo ${DATA_DIR}/test-discovery"
+ HCICONFIG="sudo hciconfig"
+ KILLPANEL="sudo killall dawati-panel-bluetooth"
+ KILLAGENT="sudo killall bluetooth-agent"
+fi
+
+killall simple-agent > /dev/null 2>&1
+TEST_NAME_STRING="default"
+TEST_TEXT_FILE="${DATA_DIR}/text_file_512k"
+export PATH=$PATH:/sbin/:/usr/sbin/:./data/
+adapter="hci0"
+# export DISPLAY=:0.0
+
+# By this function, it can make sure adapter is available and status is UP.
+function adapter_init()
+{
+ local first_adapter=`$HCICONFIG | grep -o "^hci[0-9]" | sed -n '1p'`
+ local ret=0
+
+ if [ -z "${first_adapter}" ]; then
+ echo "[Critical] No adaptor found!"
+ exit 1
+ elif [ "${adapter}" != "${first_adapter}" ]; then
+ adapter=${first_adapter}
+ fi
+
+ if $HCICONFIG | grep "DOWN" > /dev/null ; then
+ ${HCICONFIG} ${adapter} up
+ connmanctl enable bluetooth
+ ret=$?
+ fi
+ return $ret
+}
+function BT_discover()
+{
+ local ret=0
+ for in in `seq 5`
+ do
+ timeout 30 ${TEST_DISCOVER} >& /tmp/bt_device_list
+ cat /tmp/bt_device_list | grep $SERV_BD_ADDR
+ ret=$?
+ if [ $ret -eq 0 ]
+ then
+ break
+ fi
+ done
+ if [ $ret -ne 0 ]
+ then
+ echo 'BT discover fail'
+ exit 1
+ fi
+ return $ret
+}
+function auto_pair()
+{
+ local ret=0
+ ${TEST_DEVICE} remove $SERV_BD_ADDR > /dev/null 2>&1
+ BT_discover
+ ${AUTO_AGENT}/auto_accept_agent hci0 $SERV_BD_ADDR
+ ret=$?
+ if [ ${ret} -ne 0 ]; then
+ echo "[FAIL] auto pairing failed!"
+ exit ${ret}
+ fi
+}
+
+function agent_setup()
+{
+ # on netbook, dawati-panel-bluetooth contains agent
+ local bt_panel=`ps -ef | grep dawati-panel-bluetooth | wc -l`
+ local bt_agent=`ps -ef | grep bluetooth-agent | wc -l`
+
+ if [ "${bt_panel}" -eq 2 ]; then
+ # System has dawati-panel-bluetooth process, we restart it
+ ${KILLPANEL} > /dev/null
+ # after killall, system will automatically restart the panel
+ elif [ "${bt_agent}" -eq 2 ]; then
+ # We need to kill bluetooth-agent firstly
+ ${KILLAGENT} > /dev/null
+ # Start our agent
+ ${AUTO_AGENT}/auto_accept_agent hci0 &
+ else
+ # No such a panel, we can setup agent
+ ${AUTO_AGENT}/auto_accept_agent hci0 &
+ fi
+
+ sleep 2
+}
--- /dev/null
+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.
+
--- /dev/null
+#!/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"
--- /dev/null
+#!/bin/sh
+# Copyright (C) 2010, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Guo, Zhaojuan <zhaojuan.guo@@intel.com>
+# Date Created: 2010/12/02
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+# DESC:build pan server envieroment
+
+brctl addbr pan1
+
+ifconfig pan1 192.168.0.1
+
+echo 1 > /proc/sys/net/ipv4/ip_forward
+
+iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
+
+iptables -A FORWARD -i pant1 -j ACCEPT
+
--- /dev/null
+find . | xargs file | grep -v directory | awk '{print $1}' | sed 's/://g' | xargs md5sum | awk '{print $2" , "$1}'
--- /dev/null
+Bluetooth test automation test file 3.
\ No newline at end of file
--- /dev/null
+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
--- /dev/null
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
+subdir1_test_file1
--- /dev/null
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
+bluetooth test automation meta file: subdir1_test_file2.txt
--- /dev/null
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+Bluetooth test automation sample file in subdir2: subdir2_test_file1.txt
+
+
--- /dev/null
+Oh, I am a small file:)
\ No newline at end of file
--- /dev/null
+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
--- /dev/null
+#!/bin/sh
+# Copyright (C) 2010, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Wan Shuang <shuang.wan@intel.com>
+# Date Created: 2010/01/18
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'`
+
+if [ -n "$agent_pid" ]; then
+ kill -KILL $agent_pid
+ echo "Pairing agent released"
+fi
+
+rm server_tmp -rf
+echo "Temporary directory server_tmp for file transfer test has been removed."
+
--- /dev/null
+#!/bin/sh
+# Copyright (C) 2010, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Wan Shuang <shuang.wan@intel.com>
+# Date Created: 2010/01/18
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+set -x
+obexd_pid=`ps aux | grep obexd | grep -v grep | awk '{print $2}'`
+
+echo "obexd_pid: $obexd_pid"
+
+if [ -n "$obexd_pid" ]; then
+ kill -KILL $obexd_pid
+fi
+
+agent_pid=`ps aux | grep auto_accept_agent | grep -v grep | awk '{print $2}'`
+
+if [ -z "$agent_pid" ]; then
+ echo "Auto accpet pairing agent is starting..."
+ ./auto_accept_agent hci0 &
+fi
+
+rm server_tmp -rf
+cp server server_tmp -raf
+
+trap './server_cleanup.sh' INT
+export DISPLAY=:0.0
+echo "Start the obexd daemon"
+
+# This is only for obexd-server > 0.42 version.
+/usr/lib/obexd/obexd -n -d -a `pwd`/server
+# The obexd may be installed in directory in /usr/lib/obex
+# if so, please use bellow command to start obexd
+#/usr/lib/obexd/obexd -n -d -a -f -o -r `pwd`/server_tmp
--- /dev/null
+-----------------------
+ Introduction
+-----------------------
+This suite is to test Bluez stack.
+# Usage for each file (under tts-bluez-tests folder):
+<sub-folder> <usage>
+src source file of the cases
+data/client shared scripts and data on the client side for testing
+data/server entire folder should be copied to server machine.
+ Run server_startup.sh on the server to set up
+ a daemon to communicate with Client.
+
+# Needed package/command
+gcc make --- common packages for make
+pygobject --- python binding for gobject used by pairing script
+ data/client/auto_accept_agent
+rpm-build --- for packaging
+md5sum --- to check the file consistence after FTP transfering.
+bridge-utils --- add a network bridge for PAN server setting. (This is only for Server part)
+When PANU case is running, server should install bridge-utils to create a network bridge as PAN server.
+
+-----------------------
+Build and Run
+-----------------------
+(Suppose you only get the source code and testrunner-lite has been setup on your test machine
+ if you have got tts-bluez-tests RPM, you can directly go to step.4 on testing machine
+ if you have not installed the testrunner, you can follow the README of framework)
+Steps:
+1. We need to use two machine, one is server and another is your testing machine as client.
+ Setup Server environment by three steps as "Test Environment" describe (Please see next section)
+ Then, rest steps are on testing machine
+2. cd tts-bluez-tests
+3. sh pack.sh --- It will make and generate the tts-bluez-tests RPM
+4. rpm -ivh tts-bluez-tests-1.0.0-1.i386.rpm --- install RPM to your testing machine
+
+To run cases, you can either do step.5 or step.6
+5. cd /opt/tts-bluez-tests/ and run any sh file by root account.
+6. (if you use testkit-lite tool) testrunner-lite -f /usr/share/tts-bluez-tests/tests.xml -o /tmp/results.xml
+
+
+-----------------------
+Common Install
+-----------------------
+./autogen
+./configure prefix=/usr
+make && make install
+
+
+-----------------------
+Test Environment
+-----------------------
+1. Setup Server daemon (Strongly recommend to use ubuntu-10.04 system)
+ copy tts-bluez-tests/data/server folder to server machine, run ./bt_pan_server_setup.sh to enable PAN server,
+ then run ./server_startup.sh to enable OBEX server.
+
+2. Do confirm your client machine has no old pairing with the server machine, or it will
+ affect most of the cases.
+
+3. [On client] Config the environment file on client, the file is data/client/bluetooth_env:
+DATA_DIR --- the place for all cases where RPM install. E.g. /opt/tts-bluez-tests/
+SERV_BD_ADDR --- Server bluetooth MAC address, e.g. "00:0A:94:03:ED:81"
+
+4. Do run those cases in 'root' user please or use "sudo xxx.sh" in normal user.
+
+-----------------------
+Known Issues
+-----------------------
+For server setup, do please use ubuntu-10.04 system, because:
+* Fedora does not contain OBEX.
+* Ubuntu11 has some problem, which could cause BT not stable. (to experience, not go further to debug)
+* You can use Tizen image to be BT OBEX server, however, it cannot be PAN server, for it does not have bridge-utils.
+Do please use "su -" to switch to root account for validation.
+Note: you can report the defects of this test suite to jingke.zhang@intel.com
+
+-----------------------
+TODO
+-----------------------
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's MAC address.
+mac_addr=`${TEST_ADAPTER} address`
+
+if [ -z "$mac_addr" ]; then
+ echo "[FAIL] No Bluetooth Adapter MAC address is found"
+ ret=1
+else
+ echo "[PASS] Bluetooth MAC address is: $mac_addr"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's discoverabletimeout.
+discover_timeout=`${TEST_ADAPTER} discoverabletimeout`
+
+if [ -z "$discover_timeout" ]; then
+ echo "[FAIL] No Bluetooth Adapter discoverabletimeout is found"
+ ret=1
+else
+ echo "[PASS] Bluetooth discoverabletimeout is: $discover_timeout"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's discovering status, 0 for Not discovering,
+# 1 for adapter is in discovering.
+hcitool scan > /dev/null &
+discovering=`${TEST_ADAPTER} discovering`
+
+if [ $discovering -ne 1 ]; then
+ echo "[FAIL] Bluetooth Adapter is in discovering, but discovering status is: $discovering"
+ ret=1
+else
+ echo "[PASS] Bluetooth Adapter is in discovering, status is: 1"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's pairabletimeout.
+pair_timeout=`${TEST_ADAPTER} pairabletimeout`
+
+if [ -z "$pair_timeout" ]; then
+ echo "[FAIL] No Bluetooth Adapter pairabletimeout is found"
+ ret=1
+else
+ echo "[PASS] Bluetooth Adapter pairabletimeout is: $pair_timeout"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's powered status.
+power=`${TEST_ADAPTER} powered`
+
+if [ -z "$power" ]; then
+ echo "[FAIL] No Bluetooth Adapter power status is found"
+ ret=1
+else
+ echo "[PASS] Bluetooth Adapter power status is: $power (0 for OFF, 1 for ON)"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Get local hci0's MAC address.
+killall ${TEST_DISCOVER} > /dev/null 2>&1
+${TEST_DISCOVER} > ${tmp_file} &
+sleep 3
+killall ${TEST_DISCOVER} > /dev/null 2>&1
+num=`wc -l ${tmp_file}`
+
+if [ ${num} -lt 11 ]; then
+ echo "[FAIL] No Bluetooth Device is discoverred or your adapter bt scan fail"
+ ret=1
+else
+ echo "[PASS] Bluetooth Device discover successfully."
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get discoverable status to Off for the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# By $HCICONFIG, set to no-pscan and no-iscan
+${TEST_ADAPTER} discoverable on
+$HCICONFIG $adapter iscan
+sleep 2
+
+iscan=`${TEST_ADAPTER} discoverable`
+[ $iscan -eq 0 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1
+
+# Set discoverable scan for the adapter
+${TEST_ADAPTER} discoverable off
+
+# get power status
+iscan=`${TEST_ADAPTER} discoverable`
+
+if [ ${iscan} -eq 0 ]; then
+ echo "[PASS] Adapter discoverable is Off now"
+else
+ echo "[FAIL] Adapter discoverable is still On"
+ ret=1
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get discoverable status to On for the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# By $HCICONFIG, set to no-pscan and no-iscan
+$HCICONFIG $adapter noscan
+
+iscan=`${TEST_ADAPTER} discoverable`
+[ $iscan -eq 1 ] && echo "[FAIL] $HCICONFIG setting fail" && exit 1
+
+# Set discoverable scan for the adapter
+${TEST_ADAPTER} discoverable on
+
+# get power status
+iscan=`${TEST_ADAPTER} discoverable`
+
+if [ ${iscan} -eq 1 ]; then
+ echo "[PASS] Adapter discoverable is ON"
+else
+ echo "[FAIL] Adapter discoverable is still OFF"
+ ret=1
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+timeout=100
+
+# Set local hci0's discoverabletimeout to $timeout.
+discover_timeout=`${TEST_ADAPTER} discoverabletimeout $timeout`
+
+# Get local hci0's discoverabletimeout.
+discover_timeout=`${TEST_ADAPTER} discoverabletimeout`
+
+if [ $discover_timeout -ne $timeout ]; then
+ echo "[FAIL] Bluetooth Adapter discoverabletimeout should be set to $timeout, but it is: $discover_timeout"
+ ret=1
+else
+ echo "[PASS] Bluetooth discoverabletimeout is set to: $discover_timeout"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get pairable status to Off for the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# By $HCICONFIG, set to pscan On
+echo "Initialize to set pairable On"
+${TEST_ADAPTER} pairable on
+
+pair=`${TEST_ADAPTER} pairable`
+[ $pair -eq 0 ] && echo "[FAIL] fail to set pscan On" && exit 1
+
+# Set pairable scan for the adapter
+${TEST_ADAPTER} pairable off
+
+# get power status
+pair=`${TEST_ADAPTER} pairable`
+
+if [ ${pair} -eq 0 ]; then
+ echo "[PASS] Adapter pairable is Off now"
+else
+ echo "[FAIL] Adapter pairable is still On"
+ ret=1
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get pairable status to On for the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Set pairable to Off
+${TEST_ADAPTER} pairable off
+pair=`${TEST_ADAPTER} pairable`
+[ $pair -eq 1 ] && echo "[FAIL] pairable cannot be initialized to Off" && exit 1
+
+# Set pairable scan for the adapter
+${TEST_ADAPTER} pairable on
+
+# get power status
+pair=`${TEST_ADAPTER} pairable`
+
+if [ ${pair} -eq 1 ]; then
+ echo "[PASS] Adapter pairable is ON"
+else
+ echo "[FAIL] Adapter pairable is still OFF"
+ ret=1
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+timeout=100
+
+# Set local hci0's pairabletimeouttimeout to $timeout.
+pair_timeout=`${TEST_ADAPTER} pairabletimeout $timeout`
+
+# Get local hci0's pairabletimeouttimeout.
+pair_timeout=`${TEST_ADAPTER} pairabletimeout`
+
+if [ $pair_timeout -ne $timeout ]; then
+ echo "[FAIL] Bluetooth Adapter pairabletimeout should be set to $timeout, but it is: $pair_timeout"
+ ret=1
+else
+ echo "[PASS] Bluetooth pairabletimeout is set to: $pair_timeout"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get power status to On/Off for the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+
+# Assume the bluetooth power is On before testing.
+${TEST_ADAPTER} powered off
+
+# get power status
+power=`${TEST_ADAPTER} powered`
+
+if [ ${power} -eq 0 ]; then
+ echo "[PASS] Adapter power is OFF"
+else
+ echo "[FAIL] Adapter power is still ON, fail to power off hci0"
+ ret=1
+fi
+
+${TEST_ADAPTER} powered on
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Stressly test to get adapter power status to On/Off for 50 times.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+i=0
+
+while [ $i -lt 50 -a $ret -ne 1 ];
+do
+ # Make adapter discoverable off and check
+ ${TEST_ADAPTER} discoverable off
+ discover=`${TEST_ADAPTER} discoverable`
+
+ if [ ${discover} -eq 1 ]; then
+ echo "[FAIL] Adapter discoverable is still ON, $i trial FAIILs!"
+ ret=1
+ else
+ trials=`expr $i + 1`
+ if [ `expr $trials % 10` -eq 0 ]; then
+ echo "[PASS] Finish ${trials} trial."
+ fi
+ fi
+
+ i=`expr $i + 1`
+
+ # Make adapter discoverable on and prepare for next off
+ ${TEST_ADAPTER} discoverable on
+done
+
+${TEST_ADAPTER} discoverable on
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Stressly test to get adapter power status to On/Off for 50 times.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+i=0
+
+while [ $i -lt 50 -a $ret -ne 1 ];
+do
+ # Make adapter pairable off and check
+ ${TEST_ADAPTER} pairable off
+ pair=`${TEST_ADAPTER} pairable`
+
+ if [ ${pair} -eq 1 ]; then
+ echo "[FAIL] Adapter pairable is still ON, $i trial FAIILs!"
+ ret=1
+ else
+ trials=`expr $i + 1`
+ if [ `expr $trials % 10` -eq 0 ]; then
+ echo "[PASS] Finish ${trials} trial."
+ fi
+ fi
+
+ i=`expr $i + 1`
+
+ # Make adapter pairable on and prepare for next off
+ ${TEST_ADAPTER} pairable on
+done
+
+${TEST_ADAPTER} pairable on
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Stressly test to get adapter power status to On/Off for 50 times.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=0
+i=0
+
+while [ $i -lt 50 -a $ret -ne 1 ];
+do
+ # check power status, if not ON, exit test.
+ [ `${TEST_ADAPTER} powered` -eq 0 ] && "[FAIL] initial power is off" && ret=1
+
+ # Power off adapter and check
+ ${TEST_ADAPTER} powered off
+ power=`${TEST_ADAPTER} powered`
+
+ if [ ${power} -eq 1 ]; then
+ echo "[FAIL] Adapter power is still ON, $i trial FAIILs!"
+ ret=1
+ else
+ trials=`expr $i + 1`
+ if [ `expr $trials % 10` -eq 0 ]; then
+ echo "[PASS] Finish ${trials} trial."
+ fi
+ fi
+
+ i=`expr $i + 1`
+
+ # power on the adapter and prepare for next off
+ ${TEST_ADAPTER} powered on
+done
+
+${TEST_ADAPTER} powered on
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check FTP (File transfer profile) folder navigation from FTP client.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/18
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+# Change to the sub directory just selected and browse the content of it
+${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -l > /tmp/tmp_folder_nav.log
+
+# Check file count property of the sub directory
+row_count=`wc -l /tmp/tmp_folder_nav.log | awk '{print $1}'`
+
+# Compare the server info file and folder count we get
+if [ "$row_count" -ne 2 ]; then
+ echo "[FAIL] Check folder navigation and browse: Failed"
+ exit 1
+fi
+
+# Delete the temporary files
+rm -rf /tmp/tmp_folder_nav.log
+
+echo "[PASS] Check folder navigation and browse: Successful"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check FTP (File Transfer Profile) file get
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+# get subdir1/subdir1_test_file1.txt
+filename="subdir1_test_file1.txt"
+md5string="838d95ab225a57b134bcaf5a2ca0a38e"
+${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename}
+
+if [ ! -f $filename ]; then
+ echo "[FAIL] Test file not got!"
+ exit 1
+fi
+
+md5string_local=`md5sum $filename | awk '{print $1}'`
+
+if [ "$md5string" != "$md5string_local" ]; then
+ echo "[FAIL] md5 string mismatch."
+ rm -rf "$filename"
+ exit 1
+fi
+
+echo "md5 strings are same, file get checking successfully!"
+echo "[PASS] Check FTP get file: Successful"
+
+rm -rf "$filename"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+#set -x
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=1
+adapter_init
+auto_pair
+agent_setup
+
+filename="subdir1_test_file1.txt"
+md5string="838d95ab225a57b134bcaf5a2ca0a38e"
+touch ${filename}
+${FTP_CLIENT} -d $SERV_BD_ADDR -c "subdir1" -g ${filename}
+md5string_local=`md5sum $filename |awk '{print $1}'`
+
+# Check if the original file is covered.
+if [ "$md5string_local" != "$md5string" ]; then
+ echo "[FAIL] Check FTP get exist file:Failed!"
+else
+ echo "[PASS] Check FTP get exist file:Successfuly!"
+fi
+
+rm -r ${filename}
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=1
+adapter_init
+auto_pair
+agent_setup
+
+subdir="subdir1"
+wrong_folder="subdir4"
+
+echo "This is a temporary file."> /tmp/tmp_ftp_put.log
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $wrong_folder -p /tmp/tmp_ftp_put.log
+ret=$?
+
+if [ ${ret} -eq 0 ] ; then
+ echo "Can not put this file because the folder is wrong!"
+ echo "[PASS] Check FTP put wrong folder:Successfuly!"
+ rm -rf /tmp/tmp_ftp_put.log
+else
+ echo "[FAIL] Check FTP put wrong folder:Failed!"
+fi
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+auto_pair
+agent_setup
+
+subdir="subdir1"
+tmp_folder_name="tmp_folder_name1"
+tmp_file_name="tmp_ftp"
+tmp1_file_name="tmp_file"
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log
+created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c`
+if [ $created -le 0 ]; then
+ echo "The folder $tmp_folder_name is not created!"
+ echo "Check FTP folder create: Failed"
+ rm -rf ./tmp_ftp_folder.log
+ exit 1
+fi
+
+echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log
+exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c`
+if [ $exist -ne 1 ]; then
+ echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!"
+ rm -rf ./tmp_ftp_folder.log
+ exit 1
+fi
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp1_file_name
+
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log
+exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c`
+if [ $exist -gt 0 ]; then
+ echo "Can not delete the file $tmp1_file_name under folder $tmp_folder_name!"
+ echo "[PASS] Check FTP noexist file remove: successfuly"
+ rm -rf ./tmp_ftp_folder.log
+ rm -r $tmp_file_name
+ exit 0
+fi
+
+rm -rf ./tmp_ftp_folder.log
+rm -f $tmp_file_name
+
+echo "[FAIL] Check FTP noexist file remove: Failed"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check FTP (File Transfer Profile) put file
+# Copyright (C) 2010 Intel Corporation
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+subdir="subdir1"
+
+# Create a temporary file
+echo "This is a temporary file."> /tmp/tmp_ftp_put.log
+
+# Upload this file to FTP server
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p /tmp/tmp_ftp_put.log
+
+rm -rf /tmp/tmp_ftp_put.log
+
+# Try to get the file count of the folder we just pushed.
+newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | wc -l`
+
+if [ "$newfilecount" -ne 3 ]; then
+ echo "Failed to upload file tmp_ftp_put.log to FTP server!"
+ echo "[FAIL] Check FTP file put: Failed"
+ exit 1
+fi
+
+# remove the file we just pushed
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r tmp_ftp_put.log
+
+echo "[PASS] Check FTP file put: successfully"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check FTP (File Transfer Profile) folder manipulation includs create, remove
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/18
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+tmp_folder_name="tmp_folder_name1"
+tmp_file_name="tmp_ftp"
+
+# Create a folder on server's root directory
+${FTP_CLIENT} -d $SERV_BD_ADDR -C $tmp_folder_name
+
+# List the server's root directory and check if
+# the new created sub-folder listed in the folder browse output
+${FTP_CLIENT} -d $SERV_BD_ADDR -l > tmp_ftp_folder.log
+created=`grep "$tmp_folder_name" ./tmp_ftp_folder.log -c`
+if [ $created -le 0 ]; then
+ echo "The folder $tmp_folder_name is not created!"
+ echo "Check FTP folder create: Failed"
+ rm -rf ./tmp_ftp_folder.log
+ exit 1
+fi
+
+# Create a temporary file
+echo "This is a temporary file used to test FTP file remove under new folder."> $tmp_file_name
+
+# Upload this file to FTP server
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -p `pwd`/$tmp_file_name
+
+# List the root folder again and check if the folder really got removed
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log
+exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c`
+if [ $exist -ne 1 ]; then
+ echo "Failed to create the file $tmp_file_name under folder $tmp_folder_name!"
+ rm -rf ./tmp_ftp_folder.log
+ exit 1
+fi
+
+# Remove the folder we just created
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -r $tmp_file_name
+
+# List the root folder again and check if the folder really got removed
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $tmp_folder_name -l > tmp_ftp_folder.log
+exist=`grep "$tmp_file_name" ./tmp_ftp_folder.log -c`
+if [ $exist -gt 0 ]; then
+ echo "Failed to delete the file $tmp_file_name under folder $tmp_folder_name!"
+ echo "[FAIL] Check FTP new folder file remove: Failed"
+ rm -rf ./tmp_ftp_folder.log
+ exit 1
+fi
+
+rm -rf ./tmp_ftp_folder.log
+rm -f $tmp_file_name
+
+echo "[PASS] Check FTP new folder file create & remove: successfully"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server.
+# Copyright (C) 2010 Intel Corporation
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+# make a big file in local directory, size is 10MB, name is "10M_file"
+big_file="10M_file"
+cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file
+cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file
+cat ./5M_file ./5M_file > $big_file
+rm -f ./1M_file ./5M_file
+
+subdir="subdir1"
+
+# Upload this file to FTP server
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file}
+sleep 5
+
+# Download this file to FTP server
+rm -f $big_file
+time1=`date +%s`
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -g `pwd`/${big_file}
+time2=`date +%s`
+duration=`expr $time2 - $time1`
+
+# search this file on Server
+ls | grep "${big_file}" > /dev/null
+if [ $? -ne 0 ]; then
+ echo "[FAIL] Failed to download big 10M file from FTP server!"
+ ret=1
+else
+ echo "[PASS] succeed in downloading a 10MB file from server, using ${duration} seconds."
+fi
+
+# Delete the big file
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file}
+rm -f ${big_file}
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to use FTP to transfer a big file (about 10MB) to OBEXD Server.
+# Copyright (C) 2010 Intel Corporation
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+# make a big file in local directory, size is 10MB, name is "10M_file"
+big_file="10M_file"
+cat ${TEST_TEXT_FILE} ${TEST_TEXT_FILE} > ./1M_file
+cat ./1M_file ./1M_file ./1M_file ./1M_file ./1M_file > ./5M_file
+cat ./5M_file ./5M_file > $big_file
+rm -f ./1M_file ./5M_file
+
+subdir="subdir1"
+
+# Delete the same name file on Server
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file}
+
+# Upload this file to FTP server
+time1=`date +%s`
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -p `pwd`/${big_file}
+time2=`date +%s`
+duration=`expr $time2 - $time1`
+
+# search this file on Server
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -l | grep "${big_file}" > /dev/null
+if [ $? -ne 0 ]; then
+ echo "[FAIL] Failed to upload big 10M file to FTP server!"
+ ret=1
+else
+ echo "[PASS] succeed in uploading a 10MB file to server, using ${duration} seconds."
+fi
+
+# Delete the big file
+${FTP_CLIENT} -d $SERV_BD_ADDR -c $subdir -r ${big_file}
+rm -f ${big_file}
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Pair the bluetooth server computer.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+ret=0
+# Get the paired computer.
+${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null
+if [ $? -eq 0 ]; then
+ echo "[PASS] The computer server is paired successfully!"
+else
+ echo "[FAIL] The computer server is not paired."
+ ret=1
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Pair the bluetooth server computer and check to remove it.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+ret=0
+# make sure computer is paired successfully
+${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null
+if [ $? -eq 0 ]; then
+ echo "[PASS] The computer server is paired successfully!"
+else
+ echo "[FAIL] The computer server is not paired."
+ ret=0
+fi
+
+# Remove the paired computer, and check again.
+sleep 2
+${TEST_DEVICE} remove $SERV_BD_ADDR
+
+${TEST_DEVICE} list | grep "$SERV_BD_ADDR" > /dev/null
+if [ $? -ne 0 ]; then
+ echo "[PASS] The computer server is removed successfully!"
+else
+ echo "[FAIL] The computer server is not removed."
+ ret=0
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check the remote device type after pairing with it.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+ret=0
+# Get the paired computer type.
+# class_number=`${TEST_DEVICE} class $SERV_BD_ADDR`
+ Icon_device=`${TEST_DEVICE} Icon $SERV_BD_ADDR`
+
+case $Icon_device in
+#case $class_number in
+ 0) device_type="computer" ;;
+ 1) device_type="computer" ;;
+ 2) device_type="phone" ;;
+ 4) device_type="headset" ;;
+ 5) device_type="keyboard or mouse" ;;
+ *) device_type="not captured" ;;
+esac
+
+if [ "${device_type}" = "${SERV_BD_TYPE}" ]; then
+ echo "[PASS] Correct! The server device type is $device_type."
+else
+ if [ "$device_type" = "not captured" ]; then
+ echo "[FAIL] Sorry, test case cannot judge what it is. Please inform case maker, thanks!"
+ else
+ echo "[FAIL] No, the server device is $device_type, but you assign ${SERV_BD_TYPE} in config file."
+ ret=1
+ fi
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+ret=1
+
+hcitool clock |grep "Clock"
+ret=$?
+
+if [ $ret -eq 0 ] ; then
+ echo "[PASS] Get local clock:successfuly!"
+else
+ echo "[FAIL] Get local clock:Failed!"
+ exit 1
+fi
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+auto_pair
+
+ret=1
+
+hcitool clock $SERV_BD_ADDR |grep "Clock"
+ret=$?
+
+if [ $ret -eq 0 ] ; then
+ echo "[PASS] Get remote clock:successfuly!"
+else
+ echo "[FAIL] Get remote clock:Failed!"
+ exit 1
+fi
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+device=`hcitool dev |grep -v "Devices:"`
+
+if [ -n "$device" ] ; then
+ echo "[PASS] Display local devices:successfuly!"
+else
+ echo "[FAIL] There is no local bluetooth device!"
+ exit 1
+fi
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+ret=1
+
+hcitool epinq
+$HCICONFIG |grep "INQUIRY"
+ret=$?
+
+if [ $ret -ne 0 ]; then
+ echo "[PASS] Exit periodic inquiry:Successfuly!"
+else
+ echo "[FAIL] Exit periodic inquiry:Failed!"
+ exit 1
+fi
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+ret=0
+
+hcitool info ${SERV_BD_ADDR}
+ret=$?
+
+if [ ${ret} -eq 0 ] ; then
+ echo "[PASS] Get server's information:Successfuly!"
+else
+ echo "[FAIL] Get server's information:Failed!"
+fi
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+ret=0
+
+hcitool inq
+ret=$?
+
+if [ ${ret} -eq 0 ] ; then
+ echo "[PASS] Get server's information:Successfuly!"
+else
+ echo "[FAIL] Get server's information:Failed!"
+fi
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+ret=1
+
+hcitool spinq
+$HCICONFIG |grep "INQUIRY"
+ret=$?
+
+if [ $ret -eq 0 ]; then
+ echo "[PASS] Start periodic inquiry:Successfuly!"
+else
+ echo "[FAIL] Start periodic inquiry:Failed!"
+ exit 1
+fi
--- /dev/null
+#!/bin/sh
+#DESCR: Check l2cap socket communication using l2ping
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# Ping server for 4 times.
+l2ping $SERV_BD_ADDR -c 4 > /tmp/l2ping.log
+
+num_reply=`cat /tmp/l2ping.log | grep "44 bytes from $SERV_BD_ADDR" -c`
+
+rm -rf /tmp/l2ping.log
+
+if [ "$num_reply" -le 0 ]; then
+ echo "no response recieved from adaptor $SERV_BD_ADDR"
+ echo "[FAIL] Check l2cap socket communication using l2ping: Failed"
+ exit 1
+else
+ echo "l2cap ping check passed, got $num_reply responses from $SERV_BD_ADDR"
+ echo "[PASS] Check l2cap socket communication using l2ping: Successfully"
+fi
+
+exit 0
--- /dev/null
+#!/bin/sh
+set -x
+#DESCR: Check OPP (Objects Push Profile) by putting files to OPP server
+# Copyright (C) 2010 Intel Corporation
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/12/23
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+# after obexd-0.42, the obexd related operation needs an agent in background.
+agent_setup
+
+# Get the last opp test file number on server root dir.
+oldfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"`
+opp_lastfile_number=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep "tmp_opp_send" | awk -v max=0 -F"_" '{if($NF>max) {max=$NF ; print max}}' | tail -n 1`
+
+# Create 3 temporary files, whose suffix number is bigger than last file number
+temp_number=3
+
+i=0
+while [ $i -lt $temp_number ];
+do
+ temp_file="tmp_opp_send_`expr ${opp_lastfile_number} + 1`"
+ cp ${DATA_DIR}/object $temp_file
+ ${DATA_DIR}/opp-client -d $SERV_BD_ADDR -s $temp_file
+ ((i++))
+ ((opp_lastfile_number++))
+done
+
+# Upload this file to FTP server, if the file is not text, server will use
+# OPP (channel 9) to receive
+
+rm -rf tmp_opp_send_*
+
+# Try to get the file count of the folder we just pushed.
+newfilecount=`${FTP_CLIENT} -d $SERV_BD_ADDR -l | grep -c "tmp_opp_send"`
+
+if [ $newfilecount -ne `expr $oldfilecount + $temp_number` ]; then
+ echo "Failed to upload files tmp_opp_send_* to OPP server!"
+ echo "[FAIL] Check OPP file put: Failed"
+ exit 1
+fi
+
+echo "[PASS] Check OPP files put: successfully"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Set up PAN User and ping the PAN Server's IP (client gateway).
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang, Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/12/02
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+#run the script to connect the server
+killall test_network > /dev/null
+${DATA_DIR}/test_network $SERV_BD_ADDR nap >/dev/null &
+
+# Sleep for some seconds to let test_network finish.
+sleep 5
+
+#you will have bnep0 if the connection successful
+ifconfig | grep "bnep0" > /dev/null
+if [ $? -ne 0 ]; then
+ echo "Have not build connection to server!"
+ exit 1
+else
+ echo "Step1: Build connection to server successfully!"
+fi
+
+#Assign ip for bnep0, server has been set to 192.168.0.1
+ifconfig bnep0 192.168.0.2
+
+#Add default gw
+route add default gw 192.168.0.1
+echo "Wait for 10 seconds."
+sleep 10
+
+#ping your server address
+ping 192.168.0.1 -c 1 > /dev/null
+if [ $? -ne 0 ]; then
+ echo "[FAIL] no response recieved from adaptor $SERV_BD_ADDR"
+ exit 1
+fi
+
+echo "[PASS] Step2: Ping gateway successfully. PANU profile passed"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check pbap profile
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang, Jingke <jingke.zhang@intel.com>
+# Date Created: 2010/12/09
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+agent_setup
+
+contacts=`${PBAP_CLIENT} $SERV_BD_ADDR | grep "BEGIN:VCARD" | wc -l`
+
+if [ $contacts -eq 0 ]; then
+ echo "[FAIL] Fail to get the phonebook from remote"
+ exit 1
+fi
+
+echo "[PASS] Successfully get the phonebook from remote"
+exit 0
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+sdptool add DUN
+service_name=`sdptool search --bdaddr local DUN |grep "Service Name"`
+
+if [ -n "$service_name" ] ; then
+ echo "$service_name"
+ echo "[PASS] Add DUN service:Successfuly!"
+else
+ echo "[FAIL] Add DUN service:Failed!"
+ exit 1
+fi
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+ret=0
+
+# Local device should support SDP Server.
+service_record=`sdptool browse local | grep "Service Name"`
+line=`echo $service_record | wc -l`
+if [ 0 -eq $line ]; then
+ echo "[FAIL] No SDP Server support"
+ ret=1
+else
+ echo "[PASS] Device support SDP Server, local service list is:"
+ echo "$service_record"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+# Enter the case folder
+cd `dirname $0`
+. ./data/bluetooth_env
+
+# Init BT adapter to up and piscan
+adapter_init
+
+# Make a pairing with the server
+auto_pair
+
+ret=0
+
+# Local device should support SDP Client, it should be able to browse remote SDP Server.
+service_record=`sdptool browse ${SERV_BD_ADDR} | grep "Service Name"`
+line=`echo $service_record | wc -l`
+if [ 0 -eq $line ]; then
+ echo "[FAIL] No SDP Client support"
+ ret=1
+else
+ echo "[PASS] Device support SDP Client, remote server's service list is:"
+ echo "$service_record"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+
+sdptool add --handle=0x10000 LAN
+sdptool del 0x10000
+service=`sdptool records local | grep "Service RecHandle: 0x10000"`
+
+if [ -z "$service" ]; then
+ echo "[PASS] Delete 0x10000 service:Successfuly!"
+else
+ echo "[FAIL] Delete 0x10000 service:Failed!"
+ exit 1
+fi
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+
+sdptool add --handle=0x10000 FTP
+service=`sdptool get 0x10000 |grep "Service Name"`
+
+if [ -n "$service" ]; then
+ echo "[PASS] Get local 0x10000 service:Successfuly!"
+else
+ echo "[FAIL] Get local 0x10000 service:Failed! "
+ exit 1
+fi
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+
+
+sdptool add FTP
+service=`sdptool search --bdaddr=local FTP |grep "OBEX File Transfer"`
+
+if [ -n "$service" ]; then
+ echo "[PASS] Search local FTP service:Successfuly!"
+else
+ echo "[FAIL] Search local FTP service:Failed! "
+ exit 1
+fi
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+adapter_init
+auto_pair
+
+service=`sdptool search --bdaddr=$SERV_BD_ADDR FTP |grep "OBEX File Transfer"`
+
+if [ -n "$service" ]; then
+ echo "[PASS] Search local FTP service:Successfuly!"
+else
+ echo "[FAIL] Search local FTP service:Failed! "
+ exit 1
+fi
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check if bluetoothd has been started
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Jingke Zhang <jignke.zhang@intel.com>
+# Date Created: 2010/01/12
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+
+bt_daemon_pid=`ps aux | grep bluetoothd | grep -v grep | awk '{print $2}' | head -n 1`
+
+if [ -z "$bt_daemon_pid" ]; then
+ echo "bluetoothd daemon isn't started, this is a crital failure"
+ echo "[FAIL] Check if bluetoothd daemon started: Failed"
+ exit 1
+else
+ echo "Check if bluetoothd daemon started: Successfully"
+ echo "[PASS] bluetoothd daemon has been started, the pid is: $bt_daemon_pid"
+ exit 0
+fi
--- /dev/null
+#!/bin/sh
+#DESCR: Check if the stack packages are installed in system
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+ret=0
+P_Bluez=`rpm -qa | grep "bluez-[0-9]"`
+
+if [ -z "$P_Bluez" ]; then
+ echo "No Bluez package is found!"
+ ret=1
+else
+ echo "[PASS] Bluez package is: $P_Bluez"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check if the stack packages are installed in system
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+ret=0
+P_obexd=`rpm -qa | grep "obexd-[0-9]"`
+
+if [ -z "$P_obexd" ]; then
+ echo "No obexd package is found!"
+ ret=1
+else
+ echo "[PASS] obexd package is: $P_obexd"
+fi
+
+exit $ret
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} sspmode 0
+${HCICONFIG} ${adapter} sspmode > ${tmp_file}
+grep -w "Disabled" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ];then
+ echo "[PASS] Disable sspmode successfuly!"
+else
+ echo "[FAIL] Fail to disable sspmode!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} sspmode 1
+${HCICONFIG} ${adapter} sspmode > ${tmp_file}
+grep -w "Enabled" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ];then
+ echo "[PASS] Enable sspmode successfuly!"
+else
+ echo "[FAIL] Fail to enable sspmode!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="auth"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "AUTH" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ];then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail! "
+ ret=1
+fi
+
+${HCICONFIG} ${adapter} noauth
+rm -r ${tmp_file}
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="encrypt"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "ENCRYPT" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ];then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail! "
+fi
+
+${HCICONFIG} ${adapter} noencrypt
+rm -r ${tmp_file}
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="iscan"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "ISCAN" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ]; then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter=noauth
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "AUTH" ${tmp_file}
+ret=$?
+
+
+if [ ${ret} -ne 0 ];then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail! "
+ ret=1
+fi
+
+rm -r ${tmp_file}
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="noencrypt"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "ENCRYPT" ${tmp_file}
+ret=$?
+
+if [ ${ret} -ne 0 ];then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail! "
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="noscan"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONGIH} > ${tmp_file}
+grep -w "PSCAN ISCAN" ${tmp_file}
+ret=$?
+
+
+if [ ${ret} -ne 0 ];then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail! "
+ ret=1
+fi
+
+${HCICONFIG} ${adapter} piscan
+rm -r ${tmp_file}
+exit ${ret}
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="piscan"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "PSCAN" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ]; then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+parameter="pscan"
+ret=1
+
+adapter_init
+
+${HCICONFIG} ${adapter} ${parameter}
+${HCICONFIG} > ${tmp_file}
+grep -w "PSCAN" ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ]; then
+ echo "[PASS] Set ${parameter} successfuly!"
+else
+ echo "[FAIL] Set ${parameter} fail!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
+
+
--- /dev/null
+#!/bin/sh
+#DESCR: Check to get MAC address of the local adapter.
+# Copyright (C) 2010 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Authors:
+# Zhang Jingke <jingke.zhang@intel.com>
+# Date Created: 2011/03/24
+#
+# Modifications:
+# Modificator Date
+# Content of Modification
+#
+
+
+
+cd `dirname $0`
+. ./data/bluetooth_env
+
+ret=1
+
+adapter_init
+
+hcitool scan > ${tmp_file}
+grep -v "Scanning..." ${tmp_file}
+ret=$?
+
+if [ ${ret} -eq 0 ];then
+ echo "[PASS] scaned device successfuly!"
+else
+ echo "[FAIL] no device could be scaned!"
+fi
+
+rm -r ${tmp_file}
+
+exit ${ret}
+
+
+
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<suite name="tts-bluez-tests">\r
+ <set name="device_control">\r
+ <testcase purpose="check bluetoothd daemon running in system" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_daemon_bluetoothd">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>ps -ef | grep bluetoothd\r
+check if system runs bluetoothd daemon in beginning of booting up.</step_desc>\r
+ <expected>when system boots up, it should run bluetoothd daemon.</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_daemon_bluetoothd.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="get local adapter name value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_adapter_get_name">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 name</step_desc>\r
+ <expected>it should get BT device name</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_name.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="check obexd package integration" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_package_obexd">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>rpm -qv obexd\r
+Check if obexd rpm package is installed</step_desc>\r
+ <expected>system should install obexd package</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_obexd.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="get local adapter BT MAC address information" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_get_address">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>1, Run command "hciconfig -a" to display all device information. (In auto case, it will call DBus API to get the name property of the adapter)\r
+2. Find BT MAC address from the output of the command.</step_desc>\r
+ <expected>1. Bluetooth MAC address should be output in pattern, for example, 00:22:69:FB:AA:8A</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_address.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="set local adapter power and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_set_power">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>1. Call DBus API: SetProperty("Powered", <On or Off>) to power on/off the bluetooth adapter.\r
+2. Call DBus API: GetProperties() to get the value of "Powered" property. 1 stands for On, and 0 stands for Off.</step_desc>\r
+ <expected>1. The property value got from DBus call should be same with the value we set.</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_power.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="check bluez package integration" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_system_package_bluez">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>rpm -qv bluez\r
+Check if the bluez rpm package is installed</step_desc>\r
+ <expected>System should install bluez package.</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_system_package_bluez.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="stressfully set power On/Off for 50 times" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_set_stress_power_50times">\r
+ <description>\r
+ <notes />\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>1. Call DBus API: SetProperty("Powered", <boolean value for On/Off>) to power on and power off the adapter for 50 times.\r
+2. Check if the bluetooth device can be powered correctly during the stress process.</step_desc>\r
+ <expected>1. For each execution during the 50 times, adapter power should be correctly On and Off.</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_stress_power_50times.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="set local adapter discoverabletimout and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_set_discoverabletimeout">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 discoverabletimeout 1</step_desc>\r
+ <expected>the hci0 discoverabletimeout could be set to 1</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_discoverabletimeout.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="set local adapter pairable to Off and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_set_pairable_off">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 pairable 0</step_desc>\r
+ <expected>hci0 pairable could be set to 0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_off.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="set local adapter pairable to On and check value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P0" id="bt_adapter_set_pairable_on">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 pairable 0</step_desc>\r
+ <expected>hci0 pairable should be set to 0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_set_pairable_on.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="get local adapter discoverabletimout status value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_adapter_get_discoverabletimeout">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 discoverabletimeout</step_desc>\r
+ <expected>it should present discoverabletimeout info.</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_discoverabletimeout.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="get local adapter power status value" type="functional_positive" status="ready" requirement_ref="bluetooth" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_adapter_get_power">\r
+ <description>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/lib/bluez/test/test-adapter hci0 power</step_desc>\r
+ <expected>it should get hci0 power status</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_adapter_get_power.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ </set>\r
+ <set name="bluez_command">\r
+ <testcase purpose="hci command to set iscan mode" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_iscan">\r
+ <description>\r
+ <notes>hci command to set iscan mode</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_iscan.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hci command to set adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_name">\r
+ <description>\r
+ <notes>hci command to set adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_name.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hci command to check adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_hci_name">\r
+ <description>\r
+ <notes>hci command to check adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_name.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hci command to set piscan mode" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_set_piscan">\r
+ <description>\r
+ <notes>hci command to set piscan mode</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_set_piscan.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hci command to check device informaton" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_hci_dev">\r
+ <description>\r
+ <notes>hci command to check device informaton</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_hci_dev.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hci command to get adapter name" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_get_name">\r
+ <description>\r
+ <notes>hci command to get adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_get_name.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="hcitool command to scan nearby bluetooth devices" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="hci_tool_scan">\r
+ <description>\r
+ <notes>hcitool command to scan nearby bluetooth devices</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/hci_tool_scan.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="pair IVI with other BT devices" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P1" id="bt_gap_pairing_computer">\r
+ <description>\r
+ <notes>hci command to get adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_pairing_computer.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose=" Check l2cap socket communication using l2ping" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_l2cap_ping_check">\r
+ <description>\r
+ <notes>hci command to get adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_l2cap_ping_check.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ <testcase purpose="The paired BT device could be remove successfully" type="functional_positive" status="ready" component="Networking/Bluetooth" execution_type="auto" priority="P2" id="bt_l2cap_ping_check">\r
+ <description>\r
+ <notes>hci command to get adapter name</notes>\r
+ <pre_condition />\r
+ <post_condition />\r
+ <steps>\r
+ <step order="1">\r
+ <step_desc>/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh</step_desc>\r
+ <expected>0</expected>\r
+ </step>\r
+ </steps>\r
+ <test_script_entry test_script_expected_result="0">/usr/share/tests/common-connectivity-suite/tts-bluez-tests/bt_gap_remove_pairing_computer.sh</test_script_entry>\r
+ </description>\r
+ <categories>\r
+ <category>IVI</category>\r
+ </categories>\r
+ </testcase>\r
+ </set>\r
+</suite>\r
+\r
--- /dev/null
+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.
+
--- /dev/null
+
+---------------------
+Introduction
+---------------------
+tts-connman-tests contains both manual and auto tests for ConnMan.
+tests.xml describes both auto and manual tests.
+
+ConnMan is an open source project that provides a daemon for managing
+internet connections within embedded devices running the Linux operating
+system
+
+tts-connman-tests automatic test scripts are in the following source code
+structure:
+tts-connman-tests
+ data
+ apset.tgz: The script that used to set Cisco WiFi AP
+ pack.sh: The script that used to build package
+ tests.xml: ConnMan test cases definition, including both auto and manaul
+ README: This file
+ src
+ 3G: 3G test scripts
+ BT: Bluetooth test scripts
+ common: Common functions that used in test cases
+ Ethernet: Ethernet test scripts
+ WiFi: WiFi test scripts
+ Signal: Test ConnMan signal functionality
+ Profile: Test ConnMan profile object
+ Flight: Test ConnMan in flight on/off mode.
+ Property: Test property value in API
+Following are structure after installation:
+/usr/share/tests/common-connectivity-suite/tts-connman-tests/
+ CM_*.py: All automatic test cases
+ common: Common functions that used in test cases
+ README: This file
+ <sub-dir>: Helper scripts that used in sub test suites like WiFi
+ tests.xml: ConnMan test case definitions
+
+---------------------
+Testing environment
+---------------------
++ Test machine: This is the device/machine that we test ivi image, like VTC1010 or BFH.
++ Ethernet: Local ethernet
++ WiFi Guest: An open-no-security wireless AP with essid Guest. We use this network to test basic WiFi features by default.
++ WEP WIFI: A WEP encrypted wireless AP. We use it to test WEP encrypted cases
++ WPA2 WIFI: A WPA2 encrypted wireless AP. We use it to test WPA/WPA2 encrypted cases
+
+---------------------
+Install and Run
+---------------------
++ Modify below variables in tts-connman-tests/src/common/config.py to configure actual network information
+ cm_open_ap_essid: The open AP's ssid, the value type is a string, eg. cm_open_ap_essid = 'Guest'
+ cm_wep_ap: Wep encrypted AP's ssid and password, the value type is a hash which including 2 keys("name" and "password"),
+ cm_wpa2_ap: WPA/WPA2 encrypted AP's ssid and password, the value is a hash which including 2 keys("name" and "password"),
+ cm_available_ap: Available(could surf internet) AP's ssid and password, the value type is a hash which including 2 keys("name" and "password")
+ cm_ping_server_ip: The IP address that in the same network with test devices and AP
+
+
++ Install
+rpm -ivh tts-connman-tests-0.1.0-1.i386.rpm --nodeps
+
++ Test environment setup
+Refer the section Test environment setup
+
++ Run
+Setup a open hidden WiFi AP with essid that you
+Connect to a ethernet network so that "ping -b" local network has response
+cd /usr/share/tests/common-connectivity-suite/tts-connman-tests/
+su -
+export PYTHONPATH=$PYTHONPATH:/usr/share/tests/common-connectivity-suite/tts-connman-tests/common
+testkit-lite -f /usr/share/tests/common-connectivity-suite/tts-connman-tests/tests.xml --comm localhost -o ./results.xml
+Please refer to the section Test Envrionment setup for what to test
+
+---------------------
+Known issues
+---------------------
+1. Some test cases might fail in batch running, meanwhile pass when running
+ independently. We're still debuging these cases.
+
+Note: you can report the defects of this test suite to jeff.zheng@intel.com
+
+---------------------
+To Do
+---------------------
+We will develop more test cases
--- /dev/null
+#!/bin/bash
+
+# Usage: bisect <good commit> <test case>
+git bisect start
+git bisect good $1
+git bisect bad master
+
+while [ 1 ]; do
+make clean
+pkill -9 connmand
+./bootstrap-configure
+make -j 9 || { echo make failed; git bisect reset; exit 1; }
+src/connmand
+
+$2
+
+if [ $? -eq 0 ]; then
+ git bisect good |head -n 1 |grep "bad"
+ if [ $? -eq 0 ]; then
+ git bisect reset
+ echo culprit commit found
+ exit 0
+ fi
+else
+ git bisect bad |head -n 1 |grep "bad"
+ if [ $? -eq 0 ]; then
+ git bisect reset
+ echo culprit commit found
+ exit 0
+ fi
+fi
+done
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_BigPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.Ping(1400))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_Connect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_DeviceIsExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+EXIT(dev.IsExist())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_Disconnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+import time
+
+dev = C3GDevice()
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ EXIT(False)
+
+svc = dev.GetService()
+svc.Disconnect()
+time.sleep(20)
+EXIT(dev.IsConnected() == False)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_HasDHCP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.PoweredOn()
+time.sleep(5)
+dev.Connect()
+time.sleep(5)
+svc = dev.GetService()
+EXIT(svc.IsFixed())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_HasIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+print dev
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.HasIP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IfconfigDown
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = C3GDevice()
+dev.Connect()
+svc = dev.GetService()
+if svc.Ping() != True:
+ print 'Cannot ping'
+ EXIT(False)
+ret = dev.ifconfigDown()
+if ret == False:
+ print 'ifconfig down failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+tech = dev.GetTechnology()
+properties = tech.GetProperties()
+print 'Device Status is now %s' % properties['State']
+dev.ifconfigUP()
+time.sleep(2)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IfconfigUp
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = C3GDevice()
+dev.Connect()
+dev.ifconfigDown()
+time.sleep(2)
+ret = dev.ifconfigUP()
+if ret == False:
+ print 'ifconfig up failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+dev = C3GDevice()
+dev.Connect()
+svc = dev.GetService()
+if svc.Ping() != True:
+ print 'Cannot ping'
+ EXIT(False)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IsPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IsReEnableWorks
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+EXIT(dev.IsReEnableWorks())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IsReady
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+svc = dev.GetService()
+svc.Connect()
+EXIT(svc.IsReady())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_IsSCPWork
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+EXIT(dev.IsSCPWork())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_PoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+if dev.IsPoweredOff():
+ print 'Device is disabled'
+ print 'ReEnabled it...'
+ dev.PoweredOn()
+if dev.IsPoweredOff():
+ print 'Device is still disabled'
+ EXIT(False)
+dev.PoweredOff()
+ret = dev.IsPoweredOff()
+dev.PoweredOn()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_PoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+if dev.IsPoweredOn():
+ print 'Device is enabled'
+ print 'Disable it...'
+ dev.PoweredOff()
+if dev.IsPoweredOn():
+ print 'Device is still enabled'
+ EXIT(False)
+dev.PoweredOn()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_SmallPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.Ping(64))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_3G_Upload
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = C3GDevice()
+dev.Connect()
+EXIT(dev.Upload())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+manager.Cleanup()
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+#manager.Cleanup()
+manager.Startup3G()
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Startup3G()
+dev = C3GDevice()
+if dev.tech == None:
+ print "No 3G Device!"
+ manager.Cleanup()
+ EXIT(False)
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+ret=dev.IsConnected()
+manager.Cleanup()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#manager.Startup3G()
+dev = C3GDevice()
+if dev.device == None:
+ print "No 3G Device!"
+ #manager.Cleanup()
+ EXIT(False)
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The 3G service is not connected'
+ #manager.Cleanup()
+ EXIT(False)
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect")
+print ret[1]
+EXIT(dev.IsConnected() == False)
+ret=(dev.IsConnected() == False)
+#manager.Cleanup()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Startup3G()
+dev = C3GDevice()
+if dev.tech == None:
+ print "No 3G Device!"
+ manager.Cleanup()
+ EXIT(False)
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not connected!"
+ manager.Cleanup()
+ EXIT(False)
+ret=dev.Download()
+manager.Cleanup()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Startup3G()
+dev = C3GDevice()
+if dev.tech == None:
+ print "No 3G Device!"
+ manager.Cleanup()
+ EXIT(False)
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not connected!"
+ manager.Cleanup()
+ EXIT(False)
+ret=dev.Download()
+manager.Cleanup()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+EXIT(dev.IsConnected())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The BT is not connected'
+ EXIT(False)
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Disconnect")
+print ret[1]
+EXIT(dev.IsConnected() == False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not Connectred!"
+ EXIT(False)
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+if dev.IsConnected():
+ dev.Disconnect()
+props=dev.GetService().GetProperties()
+name = props["Name"]
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + name +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not Connectred!"
+ EXIT(False)
+EXIT(dev.Upload())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key)
+if dev.IsConnected():
+ dev.Disconnect()
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Connect")
+print ret[1]
+EXIT(dev.IsConnected())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_psk, cm_ap_psk_key)
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ EXIT(False)
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_psk +" Disconnect")
+print ret[1]
+EXIT(dev.IsConnected() == False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key)
+if dev.IsConnected():
+ dev.Disconnect()
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect")
+print ret[1]
+EXIT(dev.IsConnected())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key)
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ EXIT(False)
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Disconnect")
+print ret[1]
+EXIT(dev.IsConnected() == False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key)
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not Connectred!"
+ EXIT(False)
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect")
+print ret[1]
+EXIT(ret[0] == 0)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiSecDevice(cm_ap_essid_wep64, cm_ap_wep64_key)
+ret = commands.getstatusoutput("/opt/tts-connman-tests/common/bearer.sh " + cm_ap_essid_wep64 +" Connect")
+print ret[1]
+if dev.IsConnected() == False:
+ print "Not Connectred!"
+ EXIT(False)
+EXIT(dev.Upload())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_BigPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.BroadcastPing(1400))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_Connect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_DeviceIsExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+EXIT(dev.IsExist())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_Disconnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+import time
+
+dev = BTDevice()
+dev.Connect()
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ EXIT(False)
+
+svc = dev.GetService()
+svc.Disconnect()
+time.sleep(20)
+EXIT(dev.IsConnected() == False)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_HasDHCP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.IsDHCP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_HasIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+print dev
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.HasIP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IfconfigDown
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = BTDevice()
+dev.Connect()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+ret = dev.ifconfigDown()
+if ret == False:
+ print 'ifconfig down failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+tech = dev.GetTechnology()
+properties = tech.GetProperties()
+print 'Device Status is now %s' % properties['State']
+dev.ifconfigUP()
+time.sleep(2)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IfconfigUp
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = BTDevice()
+dev.Connect()
+ret = dev.ifconfigDown()
+time.sleep(2)
+ret = dev.ifconfigUP()
+if ret == False:
+ print 'ifconfig up failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+dev = BTDevice()
+dev.Connect()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IsPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IsReEnableWorks
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+EXIT(dev.IsReEnableWorks())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IsReady
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+svc = dev.GetService()
+svc.Connect()
+EXIT(svc.IsReady())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_IsSCPWork
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+EXIT(dev.IsSCPWork())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_PoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+if dev.IsPoweredOff():
+ print 'Device is disabled'
+ print 'ReEnabled it...'
+ dev.PoweredOn()
+if dev.IsPoweredOff():
+ print 'Device is still disabled'
+ EXIT(False)
+dev.PoweredOff()
+ret = dev.IsPoweredOff()
+dev.PoweredOn()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_PoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+if dev.IsPoweredOn():
+ print 'Device is enabled'
+ print 'Disable it...'
+ dev.PoweredOff()
+if dev.IsPoweredOn():
+ print 'Device is still enabled'
+ EXIT(False)
+dev.PoweredOn()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_SmallPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+svc = dev.GetService()
+EXIT(svc.BroadcastPing(64))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_BT_Upload
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = BTDevice()
+dev.Connect()
+EXIT(dev.Upload())
+
--- /dev/null
+#!/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()
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.Cleanup()
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.StartupBT()
--- /dev/null
+/*
+# Copyright (C) 2010, Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation; either version 2 of the License,
+# or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+*/
+#include <QtTest/QtTest>
+#include <QtNetwork>
+#include <stdlib.h>
+
+class Bearer: public QObject
+{
+ Q_OBJECT
+private slots:
+ void Scan();
+ void Connect();
+ void Disconnect();
+ void Test();
+};
+
+void Bearer::Test()
+{
+ qDebug() << "The second case : Test";
+ QVERIFY(1 == 2);
+}
+
+void Bearer::Scan()
+{
+ char *penv;
+ QNetworkConfigurationManager manager;
+ QNetworkSession *session;
+ QNetworkConfiguration cfg;
+ penv = getenv("CM_Bearer");
+ QList<QNetworkConfiguration> list = manager.allConfigurations();
+ int i = 0;
+ for (i = 0; i < list.size(); ++i) {
+ if ( list.at(i).name() == penv ) {
+ qDebug() << "Found " << penv << " !";
+ cfg = list.at(i);
+ break;
+ }
+ }
+ QVERIFY2(i < list.size(), "Service not found");
+}
+
+void Bearer::Connect()
+{
+ char *penv;
+ QNetworkConfigurationManager manager;
+ QNetworkSession *session;
+ QNetworkConfiguration cfg;
+ penv = getenv("CM_Bearer");
+ QList<QNetworkConfiguration> list = manager.allConfigurations();
+ int i = 0;
+ for (i = 0; i < list.size(); ++i) {
+ if ( list.at(i).name() == penv ) {
+ qDebug() << "Found " << penv << " !";
+ cfg = list.at(i);
+ break;
+ }
+ }
+ QVERIFY2(i < list.size(), "Service not found");
+ session = new QNetworkSession(cfg, this);
+ session->open();
+ session->waitForOpened(-1);
+}
+
+void Bearer::Disconnect()
+{
+ char *penv;
+ QNetworkConfigurationManager manager;
+ QNetworkSession *session;
+ QNetworkConfiguration cfg;
+ penv = getenv("CM_Bearer");
+ QList<QNetworkConfiguration> list = manager.allConfigurations();
+ int i = 0;
+ for (i = 0; i < list.size(); ++i) {
+ if ( list.at(i).name() == penv ) {
+ qDebug() << "Found " << penv << " !";
+ cfg = list.at(i);
+ break;
+ }
+ }
+ QVERIFY2(i < list.size(), "Service not found");
+ session = new QNetworkSession(cfg, this);
+ session->disconnect();
+ session->stop();
+ session->close();
+// session->waitForClosed(-1);
+}
+
+QTEST_MAIN(Bearer)
+#include "bearer.moc"
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_BigBroadcastPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+svc = eth.GetService()
+EXIT(svc.BroadcastPing(1400))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_Connect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+
+dev = EthDevice()
+time.sleep(3)
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_DeviceIsExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+EXIT(eth.IsExist())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_Disconnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+
+dev = EthDevice()
+time.sleep(3)
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ Exit(False)
+
+svc = dev.GetService()
+svc.Disconnect()
+time.sleep(3)
+if dev.IsConnected() == True:
+ EXIT(False)
+svc.Connect()
+time.sleep(10)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_HasDHCP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+svc = eth.GetService()
+EXIT(svc.IsDHCP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_HasIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+svc = eth.GetService()
+EXIT(svc.HasIP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IfconfigDown
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = EthDevice()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+ret = dev.ifconfigDown()
+if ret == False:
+ print 'ifconfig down failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+dev = EthDevice()
+tech = dev.GetTechnology()
+properties = tech.GetProperties()
+print 'Device Status is now %s' % properties['State']
+if properties['State'] == 'available':
+ EXIT(False)
+dev.ifconfigUP()
+time.sleep(5)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IfconfigUp
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = EthDevice()
+dev.ifconfigDown()
+time.sleep(2)
+ret = dev.ifconfigUP()
+if ret == False:
+ print 'ifconfig up failure is not connman issue'
+ EXIT(True)
+time.sleep(10)
+dev = EthDevice()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IsPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IsReEnableWorks
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+EXIT(eth.IsReEnableWorks())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IsReady
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+svc = eth.GetService()
+EXIT(svc.IsReady())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_IsSCPWork
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+EXIT(eth.IsSCPWork())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_PoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+if dev.IsPoweredOff():
+ print 'Device is disabled'
+ print 'ReEnabled it...'
+ dev.PoweredOn()
+if dev.IsPoweredOff():
+ print 'Device is still disabled'
+ EXIT(False)
+dev.PoweredOff()
+ret = dev.IsPoweredOff()
+dev.PoweredOn()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_PoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+if dev.IsPoweredOn():
+ print 'Device is enabled'
+ print 'Disable it...'
+ dev.PoweredOff()
+if dev.IsPoweredOn():
+ print 'Device is still enabled'
+ EXIT(False)
+dev.PoweredOn()
+time.sleep(10)
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_SmallBroadcastPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+eth = EthDevice()
+svc = eth.GetService()
+EXIT(svc.BroadcastPing(64))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Eth_Upload
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+EXIT(dev.Upload())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.StartupEthernet()
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_EthIsPoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+# Assume we're in offline mode
+
+manager.Online()
+time.sleep(3)
+dev = EthDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+manager.Offline()
+time.sleep(3)
+ret=dev.IsPoweredOff()
+if ret:
+ print 'Default powered is off in offline mode'
+else:
+ print 'Powered is on in offline mode'
+manager.Online()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_EthNoPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+dev = EthDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+time.sleep(3)
+manager.Offline()
+time.sleep(3)
+svc = dev.GetService()
+ret = svc != None and svc.BroadcastPing()
+if ret:
+ print 'Can ping in offline mode'
+manager.Online()
+EXIT(not ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_EthOnline
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+eth = EthDevice()
+ASSERT(eth.IsExist(), "No device found", manager.Online)
+time.sleep(3)
+manager.Offline()
+time.sleep(3)
+eth.PoweredOn()
+time.sleep(10)
+svc = eth.GetService()
+EXIT(svc.BroadcastPing())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_EthPoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+dev = EthDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+time.sleep(3)
+dev.PoweredOff()
+time.sleep(2)
+ret=dev.IsPoweredOff()
+dev.PoweredOn()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_EthPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = EthDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+dev.PoweredOn()
+time.sleep(10)
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_Offline
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+
+print 'Set to offline mode...'
+manager.Offline()
+time.sleep(10)
+state = manager.GetOfflineMode()
+ret = state == True
+print 'Manager OfflineMode is %s' % state
+manager.Online()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_Online
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+
+print 'Set to Online mode...'
+manager.Online()
+time.sleep(3)
+state = manager.GetOfflineMode()
+ret = state == False
+print 'Manager OfflineMode is %s' % state
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_Service
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+
+manager.Offline()
+time.sleep(3)
+service = manager.GetServices()
+print service
+if not service:
+ print 'There is no service in an new offline mode'
+else:
+ print 'Service is not empty in offline mode, do you powered on a device?'
+manager.Online()
+EXIT(not service)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiGuest
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+manager.Offline()
+time.sleep(3)
+dev.PoweredOn()
+dev.Connect(cm_open_ap_essid)
+svc = dev.GetService()
+EXIT(svc.BroadcastPing())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiIsPoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+manager.Offline()
+time.sleep(3)
+
+ret = dev.IsPoweredOff()
+if ret:
+ print 'Default powered is off in offline mode'
+else:
+ print 'Powered is on in offline mode'
+manager.Online
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiNoPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+manager.Offline()
+time.sleep(3)
+svc = dev.GetService()
+ret = svc != None and svc.BroadcastPing()
+if ret:
+ print 'Can ping in offline mode'
+manager.Online
+EXIT(not ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiOnline
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+dev.PoweredOn()
+dev.Connect(cm_open_ap_essid)
+svc = dev.GetService()
+EXIT(svc.BroadcastPing())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiPoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+manager.Offline()
+time.sleep(3)
+dev.PoweredOff()
+time.sleep(3)
+ret = dev.IsPoweredOff()
+manager.Online()
+time.sleep(1)
+dev.PoweredOn()
+time.sleep(1)
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Flt_WiFiPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Online()
+time.sleep(3)
+dev = WiFiDevice()
+ASSERT(dev.IsExist(), "No device found", manager.Online)
+dev.PoweredOn()
+time.sleep(3)
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Flight/Cleanup
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.Startup
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.EnableTechnology("")
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_BT
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(IsDaemonExist('bluetoothd'))
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_Boot
+#
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(IsDaemonExist('connmand'))
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_OneConnmand
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+import commands
+
+daemon = 'connmand'
+
+if IsDaemonExist(daemon):
+ ret = commands.getstatusoutput(daemon)
+ if ret[0] == 0:
+ EXIT(OneDaemonExist(daemon))
+ else:
+ print "Error occurs when exectuing connmand command"
+else:
+ EXIT(False)
+
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_State_Bluetooth
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+
+dev = Device('Bluetooth', 1, False)
+EXIT(dev.IsDisabled())
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_Ethernet
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = Device('Wired', 1, False)
+EXIT(dev.IsEnabled())
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_Offlinemode
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.GetOfflineMode()== False)
\ No newline at end of file
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_State_WIFI
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = Device('WiFi', 1, False)
+EXIT(dev.IsDisabled())
+
+
+
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2014 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jianghong Shao <jianghongx.shao@intel.com>
+#
+# Description: CM_Launch_WpaSupplicant
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(IsDaemonExist('wpa_supplican'))
\ No newline at end of file
--- /dev/null
+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"
--- /dev/null
+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 }
+ }
+}
+
--- /dev/null
+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
--- /dev/null
+"""
+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
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_ActiveProfile
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ try:
+ manager.SetProperty('ActiveProfile', path)
+ except dbus.DBusException, e:
+ if e._dbus_error_name \
+ == 'net.connman.Error.NotSupported':
+ print 'This feature is not supported now, please wait...'
+ EXIT(False)
+ else:
+ print e
+ EXIT(False)
+ print 'Set ActiveProfile property without error'
+ properties = manager.GetProperties()
+ print 'ActiveProfile property value is %s' \
+ % properties['ActiveProfile']
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_Add
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_AddExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ try:
+ profile = manager.CreateProfile('TestProfile')
+ except dbus.DBusException, e:
+ if e._dbus_error_name \
+ == 'net.connman.Error.AlreadyExists':
+ print 'Create exist profile trigger error AlreadyExists!'
+ EXIT(True)
+ else:
+ print e
+ EXIT(False)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_List
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_Remove
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+properties = manager.GetProperties()
+
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ pass
+
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'profile TestProfile still exists!'
+ EXIT(False)
+
+print 'profile TestProfile removed!'
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_RemoveNoExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ pass
+
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'profile TestProfile still exists!'
+ EXIT(False)
+
+print 'Remove no exist profile TestProfile'
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ if e._dbus_error_name == 'net.connman.Error.NotFound':
+ print 'Remove none exist profile trigger error NotFound'
+ EXIT(True)
+ else:
+ print e
+ EXIT(True)
+print 'No error happens when remove none exist profile'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_ActiveProfile
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['/profile/default']
+EXIT(InListManager('ActiveProfile', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_AvailableTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax']
+EXIT(InListManagerM('AvailableTechnologies', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_ConnectedTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'wimax', 'cellular']
+EXIT(InListManagerM('ConnectedTechnologies', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_DefaultTechnology
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax']
+EXIT(InListManager('DefaultTechnology', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_EnabledTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['ethernet', 'wifi', 'bluetooth', 'gps', 'cellular', 'wimax']
+EXIT(InListManagerM('EnabledTechnologies', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_OfflineMode
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListManager('OfflineMode', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_Profiles
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# TODO Only default?
+
+value_list = ['/profile/default', '/profile/TestProfile']
+EXIT(InListManagerM('Profiles', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_OfflineMode
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListManager('SessionMode', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_State
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['online', 'offline', 'connected', 'idle', 'ready']
+EXIT(InListManager('State', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PM_Technologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['/net/connman/technology/ethernet',
+ '/net/connman/technology/wifi',
+ '/net/connman/technology/bluetooth',
+ '/net/connman/technology/3g',
+ '/net/connman/technology/wimax',
+ '/net/connman/technology/gps',
+ '/net/connman/technology/gadget',
+ '/net/connman/technology/cellular']
+EXIT(InListManagerM('Technologies', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_APN
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# TODO The field should not be empty
+
+value_list = ['3gwap']
+EXIT(InList3G('APN', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_AutoConnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListWiFiGuest('AutoConnect', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Domains
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# Name servers is not empty
+
+value_list = ['']
+EXIT(not InListWiFiGuest('Domains', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Error
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['']
+
+# There should be no Error property, since Guest always success
+
+EXIT(InListWiFiGuest('Error', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Favorite
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListWiFiGuest('Favorite', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Immutable
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListWiFiGuest('Immutable', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_MCC
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# TODO The field should not be empty
+
+value_list = ['']
+EXIT(InList3G('MCC', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_MNC
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# TODO The field should not be empty
+
+value_list = ['']
+EXIT(InList3G('MNC', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Mode
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['managed']
+EXIT(InListWiFiGuest('Mode', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Passphrase
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+# Guest Passphrase is empty
+
+value_list = ['']
+EXIT(InListWiFiGuest('Passphrase', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_PassphraseRequired
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListWiFiGuest('PassphraseRequired', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Security
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [
+ 'none',
+ 'wep',
+ 'psk',
+ 'ieee8021x',
+ 'wpa',
+ 'rsn',
+ ]
+
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+properties = svc.GetProperties()
+key='Security'
+items = properties[key]
+for item in items:
+ if item in value_list:
+ print '%s %s is valid' % (key, item)
+ EXIT(True)
+ else:
+ print '%s %s is invalid' % (key, item)
+ EXIT(False)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_SetupRequired
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InList3G('SetupRequired', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_State
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [
+ 'ready',
+ 'idle',
+ 'failure',
+ 'association',
+ 'configuration',
+ 'login',
+ 'online',
+ ]
+EXIT(InListWiFiGuest('State', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+dev = WiFiGuestDevice()
+#svc = dev.GetService()
+#time.sleep(5)
+#svc.Disconnect()
+#time.sleep(5)
+manager.RequestScan('wifi')
+time.sleep(5)
+value_list = range(101)
+EXIT(InListWiFiGuest('Strength', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['wifi']
+EXIT(InListWiFiGuest('Type', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListTechnology('Connected', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListTechnology('Powered', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = [True, False]
+EXIT(InListTechnology('Tethering', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_PS_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+from property import *
+
+value_list = ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular']
+EXIT(InListTechnology('Type', value_list))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_ActiveProfile
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ try:
+ manager.SetProperty('ActiveProfile', path)
+ except dbus.DBusException, e:
+ if e._dbus_error_name \
+ == 'net.connman.Error.NotSupported':
+ print 'This feature is not supported now, please wait...'
+ EXIT(False)
+ else:
+ print e
+ EXIT(False)
+ print 'Set ActiveProfile property without error'
+ properties = manager.GetProperties()
+ print 'ActiveProfile property value is %s' \
+ % properties['ActiveProfile']
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_Add
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_AddExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+print 'Creating profile TestProfile...'
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+print 'TestProfile created, check...'
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ try:
+ profile = manager.CreateProfile('TestProfile')
+ except dbus.DBusException, e:
+ if e._dbus_error_name \
+ == 'net.connman.Error.AlreadyExists':
+ print 'Create exist profile trigger error AlreadyExists!'
+ EXIT(True)
+ else:
+ print e
+ EXIT(False)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_List
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'Found profile TestProfile!'
+ EXIT(True)
+
+print 'Not found profile TestProfile!'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_Remove
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+try:
+ profile = manager.CreateProfile('TestProfile')
+except dbus.DBusException, e:
+ pass
+properties = manager.GetProperties()
+
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ pass
+
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'profile TestProfile still exists!'
+ EXIT(False)
+
+print 'profile TestProfile removed!'
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Prof_RemoveNoExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+from common import *
+
+manager = manager.manager
+
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ pass
+
+properties = manager.GetProperties()
+profiles = properties['Profiles']
+
+for path in profiles:
+ id = path[path.rfind('/') + 1:]
+ if id == 'TestProfile':
+ print 'profile TestProfile still exists!'
+ EXIT(False)
+
+print 'Remove no exist profile TestProfile'
+try:
+ manager.RemoveProfile('/profile/TestProfile')
+except dbus.DBusException, e:
+ if e._dbus_error_name == 'net.connman.Error.NotFound':
+ print 'Remove none exist profile trigger error NotFound'
+ EXIT(True)
+ else:
+ print e
+ EXIT(True)
+print 'No error happens when remove none exist profile'
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.EnableTechnology("")
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_Connected
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+offline.offline('Connected')
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_ConnectedTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+offline.offline('ConnectedTechnologies')
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_DefaultTechnology
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+offline.offline('DefaultTechnology')
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1)))
+ time.sleep(1)
+ svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s')))
+
+sig = SignalConnman.sig
+sig.property_name = 'Domains Domains.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_EnabledTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+import signal_func
+
+signal_func.Dis_enable('EnabledTechnologies')
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SS_Favorite
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ time.sleep(10)
+ svc = dev.GetService()
+ properties = svc.GetProperties()
+ print 'Favorite = %s' % properties['Favorite']
+ svc.Remove()
+
+
+sig = SignalConnman.sig
+sig.property_name = 'Favorite'
+
+common.manager.RequestScan('wifi')
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+from common import *
+import common
+import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ #updated by JH
+ manager.RequestScan('wifi')
+ time.sleep(2)
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("IPv4.Configuration",
+ { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)})
+ time.sleep(1)
+ svc.svc.SetProperty("IPv4.Configuration",
+ { "Method": dbus.String("dhcp", variant_level=1)})
+
+sig = SignalConnman.sig
+sig.property_name = 'IPv4 IPv4.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_Networks
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+import signal_func
+
+signal_func.Dis_enable('Networks')
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_OfflineMode
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+offline.offline('OfflineMode')
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga"))
+ time.sleep(1)
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s')))
+
+sig = SignalConnman.sig
+sig.property_name = 'Timeservers Timeservers.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Proxy.Configuration",
+ { "Method": dbus.String("direct", variant_level=1)})
+ time.sleep(1)
+ svc.svc.SetProperty("Proxy.Configuration",
+ { "Method": dbus.String("auto", variant_level=1)})
+
+sig = SignalConnman.sig
+sig.property_name = 'Proxy Proxy.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_ScanInterval
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+def func():
+ dev = common.WiFiDevice()
+ properties = dev.GetProperties()
+ value = properties['ScanInterval']
+ dev.device.SetProperty('ScanInterval', dbus.UInt16(value + 50))
+ time.sleep(3)
+ dev.device.SetProperty('ScanInterval', dbus.UInt16(value))
+
+sig = SignalConnman.sig
+sig.property_name = 'ScanInterval'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_Scanning
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+def func():
+ time.sleep(2)
+ common.manager.manager.RequestScan('wifi')
+
+sig = SignalConnman.sig
+sig.property_name = 'Scanning'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_Services
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+import signal_func
+
+signal_func.Dis_enable('Services')
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_State
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+import signal_func
+
+signal_func.Dis_enable('State')
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga"))
+ time.sleep(1)
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s')))
+
+sig = SignalConnman.sig
+sig.property_name = 'Timeservers Timeservers.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_ConnectedTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ time.sleep(2)
+ print 'Disabling...'
+ dev.Disable()
+ time.sleep(2)
+ dev.Enable()
+
+
+sig = SignalManager.sig
+sig.property_name = 'ConnectedTechnologies'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_DefaultTechnology
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ time.sleep(20)
+ print 'Disabling...'
+ dev.Disable()
+ time.sleep(3)
+ dev.Enable()
+
+
+sig = SignalManager.sig
+sig.property_name = 'DefaultTechnology'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_EnabledTechnologies
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+import common
+
+def func():
+ dev = common.WiFiDevice()
+ dev.Disable()
+ time.sleep(2)
+ dev.Enable()
+
+sig = SignalManager.sig
+sig.property_name = 'EnabledTechnologies'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_Profiles
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+import common
+
+def func():
+ dev = common.WiFiDevice()
+ manager = dev.manager.manager
+ properties = manager.GetProperties()
+ default = properties['ActiveProfile']
+ print 'default profile is %s' % default
+ profile = manager.CreateProfile('Test1')
+ print 'created profile %s' % profile
+ manager.RemoveProfile(profile)
+
+
+sig = SignalManager.sig
+sig.property_name = 'Profiles'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_Services
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+import common
+
+def func():
+ dev = common.WiFiDevice()
+ dev.Disable()
+ time.sleep(2)
+ dev.Enable()
+
+
+sig = SignalManager.sig
+sig.property_name = 'Services'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_State
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalManager
+from common import *
+
+def func():
+ manager.Offline()
+ time.sleep(2)
+ manager.Online()
+
+
+sig = SignalManager.sig
+sig.property_name = 'State'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(TIMEOUT)
+
+sig.mainloop.run()
+EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SM_Strength
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+ time.sleep(2)
+ common.manager.manager.RequestScan('wifi')
+
+
+sig = SignalService.sig
+sig.property_name = 'Strength'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SS_AutoConnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ time.sleep(2)
+ service = dev.GetService()
+ service.SetProperty('AutoConnect', True)
+ time.sleep(2)
+ service.SetProperty('AutoConnect', False)
+
+
+sig = SignalService.sig
+sig.property_name = 'AutoConnect'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Domains.Configuration", dbus.Array(dbus.String("connman.net", variant_level=1)))
+ time.sleep(1)
+ svc.svc.SetProperty("Domains.Configuration", dbus.Array("", signature=dbus.Signature('s')))
+
+sig = SignalService.sig
+sig.property_name = 'Domains Domains.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SS_Favorite
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ time.sleep(20)
+ svc = dev.GetService()
+ properties = svc.GetProperties()
+ print 'Favorite = %s' % properties['Favorite']
+ svc.Remove()
+
+
+sig = SignalService.sig
+sig.property_name = 'Favorite'
+
+common.manager.RequestScan('wifi')
+trigger=SignalBase.Trigger(func)
+trigger.daemon = True
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SS_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ svc = dev.GetService()
+# svc.svc.SetProperty("IPv4.Configuration",
+# { "Method": "manual", "Address": "192.168.1.111"})
+ svc.svc.SetProperty("IPv4.Configuration",
+ { "Method": dbus.String("manual", variant_level=1), "Address": dbus.String("192.168.1.111", variant_level=1)})
+ time.sleep(1)
+# svc.svc.SetProperty("IPv4.Configuration",
+# { "Method": "dhcp"})
+ svc.svc.SetProperty("IPv4.Configuration",
+ { "Method": dbus.String("dhcp", variant_level=1)})
+ dev = common.WiFiGuestDevice()
+
+sig = SignalService.sig
+sig.property_name = 'IPv4 IPv4.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SS_Passphrase
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+ dev = common.WiFiGuestDevice()
+ service = dev.GetService()
+ service.SetProperty('Passphrase', '1111000000')
+
+
+sig = SignalService.sig
+sig.property_name = 'PassphraseRequired'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join(common.TIMEOUT)
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Proxy.Configuration",
+ { "Method": dbus.String("direct", variant_level=1)})
+ time.sleep(1)
+ svc.svc.SetProperty("Proxy.Configuration",
+ { "Method": dbus.String("auto", variant_level=1)})
+
+sig = SignalService.sig
+sig.property_name = 'Proxy Proxy.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalService
+import common
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Enable()
+ dev.ssid=cm_open_ap_essid
+ svc = dev.GetService()
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("0.pool.ntp.orga"))
+ time.sleep(1)
+ svc.svc.SetProperty("Timeservers.Configuration", dbus.Array("", signature=dbus.Signature('s')))
+
+sig = SignalService.sig
+sig.property_name = 'Timeservers Timeservers.Configuration'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_SC_IPv4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalTechnology
+import common
+#import offline
+
+def func():
+
+ dev = common.WiFiDevice()
+ dev.Disable()
+ time.sleep(3)
+ dev.Enable()
+
+sig = SignalTechnology.sig
+sig.property_name = 'Powered'
+
+trigger=SignalBase.Trigger(func)
+trigger.start()
+trigger.join()
+
+sig.mainloop.run()
+common.EXIT(sig.my_ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.EnableTechnology("")
--- /dev/null
+#!/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")
--- /dev/null
+#!/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")
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Stress_BT
+#
+
+import sys
+import os
+import time
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+if (len(sys.argv) != 2):
+ print "Usage: %s <Device On/Off number> ... " % (sys.argv[0])
+ EXIT(False)
+round = int(sys.argv[1])
+
+wifidev = WiFiDevice()
+if not wifidev :
+ print "No WiFi device, case fails"
+ EXIT(False)
+wifidev.Enable()
+wifidev.Connect(cm_open_ap_essid)
+if not wifidev.IsConnected():
+ print "WiFi device is not connected, case fails"
+ EXIT(False)
+dev = BTDevice()
+
+count=1
+
+while count <= round:
+ print "At the %s round" % (count)
+ print "Enable device"
+ dev.Enable()
+ time.sleep(10)
+ dev.Connect()
+ if dev.IsConnected():
+ print "Bluetooth is connected"
+ else:
+ print "Bluetooth is not connected, test fails"
+ EXIT(FALSE)
+ time.sleep(40)
+ print "Diable device"
+ dev.Disable()
+ time.sleep(10)
+ if dev.IsConnected():
+ print "Bluetooth is still connected, test fails"
+ EXIT(FALSE)
+ else:
+ print "Bluetooth is not connected"
+ time.sleep(40)
+ count += 1
+
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Stress_Flight
+#
+
+import sys
+import os
+import time
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+if (len(sys.argv) != 2):
+ print "Usage: %s <Flight On/Off number> ... " % (sys.argv[0])
+ EXIT(False)
+round = int(sys.argv[1])
+
+btdev = BTDevice()
+if not btdev :
+ print "No Bluetooth device, case fails"
+ EXIT(False)
+btdev.Enable()
+btdev.Connect()
+if not btdev.IsConnected():
+ print "Bluetooth device is not connected, case fails"
+ EXIT(False)
+wifidev = WiFiDevice()
+if not wifidev :
+ print "No WiFi device, case fails"
+ EXIT(False)
+wifidev.Enable()
+wifidev.Connect(cm_open_ap_essid)
+if not wifidev.IsConnected():
+ print "WiFi device is not connected, case fails"
+ EXIT(False)
+
+count=1
+
+while count <= round:
+ print "At the %s round" % (count)
+ print "offline on"
+ manager.Offline()
+ time.sleep(10)
+ print "offline off"
+ manager.Online()
+ time.sleep(10)
+ count += 1
+
+print "Now final check WiFi/Bluetooth status"
+btdev.Connect()
+if not btdev.IsConnected():
+ print "Bluetooth device is not connected, case fails"
+ EXIT(False)
+wifidev.Connect(cm_open_ap_essid)
+if not wifidev.IsConnected():
+ print "WiFi device is not connected, case fails"
+ EXIT(False)
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_Stress_WiFi
+#
+
+import sys
+import os
+import time
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+if (len(sys.argv) != 2):
+ print "Usage: %s <Device On/Off number> ... " % (sys.argv[0])
+ EXIT(False)
+round = int(sys.argv[1])
+
+
+btdev = BTDevice()
+if not btdev :
+ print "No Bluetooth device, case fails"
+ EXIT(False)
+btdev.Enable()
+btdev.Connect()
+if not btdev.IsConnected():
+ print "Bluetooth device is not connected, case fails"
+ EXIT(False)
+dev = WiFiDevice()
+
+count=1
+
+while count <= round:
+ print "At the %s round" % (count)
+ print "Enable device"
+ dev.Enable()
+ time.sleep(10)
+ dev.Connect(cm_open_ap_essid)
+ if dev.IsConnected():
+ print "Guest is connected"
+ else:
+ print "Guest is not connected, test fails"
+ EXIT(FALSE)
+ time.sleep(40)
+ print "Diable device"
+ dev.Disable()
+ time.sleep(10)
+ if dev.IsConnected():
+ print "Guest is still connected, test fails"
+ EXIT(FALSE)
+ else:
+ print "Guest is not connected"
+ time.sleep(40)
+ count += 1
+
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_AutoConnectFromSuspend
+#
+
+import sys
+import time
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+dev.Connect(cm_open_ap_essid)
+if not dev.IsConnected():
+ EXIT(False)
+print 'Suspending...'
+ret = commands.getstatusoutput('rtcwake -m mem -s 20')
+if ret[0] != 0:
+ print 'rtcwake -m mem -s 20 return fail'
+ EXIT(False)
+
+print 'Resume from suspend'
+time.sleep(5)
+EXIT(dev.IsConnected())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_AutoDelete
+#
+
+import sys
+import time
+import dbus
+
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False:
+ print 'Cannot access WiFi'
+ EXIT(False)
+manager.RequestScan('')
+del manager
+time.sleep(2)
+manager = Manager()
+svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+if svc == None:
+ print 'There is no AP named shz13-otc-cisco-cm'
+ EXIT(False)
+
+props = svc.GetProperties()
+security = props['Security'][0]
+print 'Current security mothod is %s' % security
+if security != 'wep':
+ EXIT(False)
+
+print 'Shutdown the AP'
+if manager.TurnAP('off') == False:
+ print 'Cannot access WiFi'
+ EXIT(False)
+manager.RequestScan('')
+#del manager
+#time.sleep(2)
+#manager = Manager()
+count = 0
+while count < 6:
+ count = count + 1
+ print "try %s times" % count
+ time.sleep(10)
+ manager.RequestScan('wifi')
+ svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+ if svc == None:
+ print 'There is no AP named shz13-otc-cisco-cm'
+ manager.TurnAP('on')
+ EXIT(True)
+
+manager.TurnAP('on')
+EXIT(False)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_DetectSecurityNone
+#
+
+import sys
+import time
+import dbus
+
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+manager.RequestScan('wifi')
+time.sleep(20)
+svc = manager.GetServiceByName(cm_open_ap_essid)
+if svc == None:
+ print 'There is no AP named Guest'
+ EXIT(False)
+
+props = svc.GetProperties()
+security = props['Security'][0]
+print 'Current security mothod is %s' % security
+if security != 'none':
+ EXIT(False)
+
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_DetectSecurityRSN
+#
+
+import sys
+import time
+import dbus
+
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+print 'Setting AP to wpa psk2(RSN)'
+if manager.Apset('sharedsecret', 'psk2', 1, 0, 1) == False:
+ print 'Cannot access WiFi'
+ EXIT(False)
+manager.RequestScan('wifi')
+time.sleep(10)
+manager.RequestScan('wifi')
+time.sleep(10)
+manager.RequestScan('wifi')
+svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+if svc == None:
+ print 'There is no AP named shz13-otc-cisco-cm'
+ EXIT(False)
+
+props = svc.GetProperties()
+security = props['Security'][0]
+print 'Current security mothod is %s' % security
+if security != 'psk' and security != 'wpa' and security != 'rsn':
+ EXIT(False)
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_DetectSecurityWEP
+#
+
+import sys
+import time
+import dbus
+
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False:
+ print 'Cannot access WiFi'
+ EXIT(False)
+manager.RequestScan('wifi')
+time.sleep(10)
+manager.RequestScan('wifi')
+time.sleep(10)
+svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+if svc == None:
+ print 'There is no AP named shz13-otc-cisco-cm'
+ EXIT(False)
+
+props = svc.GetProperties()
+security = props['Security'][0]
+print 'Current security mothod is %s' % security
+if security != 'wep':
+ EXIT(False)
+
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_DetectSecurityWPA
+#
+
+import sys
+import time
+import dbus
+
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+print 'Setting AP to wpa psk'
+if manager.Apset('sharedsecret', 'psk1', 1, 0, 1) == False:
+ print 'Cannot access WiFi'
+ EXIT(False)
+manager.RequestScan('wifi')
+time.sleep(10)
+manager.RequestScan('wifi')
+time.sleep(10)
+svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+if svc == None:
+ print 'There is no AP named shz13-otc-cisco-cm'
+ EXIT(False)
+
+props = svc.GetProperties()
+security = props['Security'][0]
+print 'Current security mothod is %s' % security
+if security != 'psk' and security != 'wpa':
+ EXIT(False)
+EXIT(True)
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_ForgotPassword
+#
+
+import sys
+import time
+import dbus
+import subprocess
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#Updated By JH
+
+dev = WiFiDevice()
+svc = manager.GetServiceByName(cm_wpa2_ap["name"])
+if not svc == None:
+ try:
+ if svc.GetProperty("Favorite"):
+ svc.Remove()
+ except dbus.DBusException, error:
+ pass
+
+os.chdir(os.path.dirname(sys.argv[0]))
+proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"] + '1'), shell=True)
+os.chdir(os.getcwd())
+dev = WiFiDevice()
+try:
+ dev.Connect(cm_wpa2_ap["name"])
+finally:
+ proc.kill()
+
+svc = dev.GetService()
+if svc.GetProperty("State") == "failure":
+ print "The state is %s" % svc.GetProperty("State")
+ EXIT(True)
+else:
+ print "The state is %s" % svc.GetProperty("State")
+ EXIT(False)
+
+
+#if manager.Apset('1111000000', 'wep64', 1, 0, 1) == False:
+# print 'Cannot access WiFi'
+# EXIT(False)
+#
+#bus = dbus.SystemBus()
+#
+#manager = dbus.Interface(bus.get_object('net.connman', '/'),
+# 'net.connman.Manager')
+#
+#properties = manager.GetProperties()
+#
+#for path in properties['Services']:
+# service = dbus.Interface(bus.get_object('net.connman',
+# path), 'net.connman.Service')
+#
+# properties = service.GetProperties()
+# if properties['Name'] != 'shz13-otc-cisco-cm':
+# continue
+# print '%s Found with path=%s' % (properties['Name'], path)
+# svc = dbus.Interface(bus.get_object('net.connman', path),
+# 'net.connman.Service')
+# svc.SetProperty('Passphrase', '1111000001')
+# try:
+# svc.Connect()
+# except dbus.DBusException, error:
+# pass
+# time.sleep(5)
+# count=1
+# while count < 5:
+# try:
+# properties = svc.GetProperties()
+# if properties['State'] == 'failure':
+# EXIT(True)
+# except dbus.DBusException, error:
+# pass
+# time.sleep(5)
+# count = count + 1
+#EXIT(False)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WA_RememberPasswd
+#
+
+import sys
+import os
+import subprocess
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#Updated By JH
+#manager.RequestScan()
+#svc = manager.GetServiceByName(cm_wpa2_ap["name"])
+#if svc == None:
+# print "There is no AP named %s" % cm_wpa2_ap["name"]
+# EXIT(False)
+#try:
+# if svc.GeProperty("Favorite"):
+# svc.Remove()
+#except dbus.DBusException, error:
+# pass
+os.chdir(os.path.dirname(sys.argv[0]))
+proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True)
+os.chdir(os.getcwd())
+dev = WiFiDevice()
+try:
+ dev.Connect(cm_wpa2_ap["name"])
+finally:
+ proc.kill()
+
+if not dev.IsConnected():
+ print "Can't connected to %s with password: %s" % (cm_wpa2_ap["name"], cm_wpa2_ap["password"])
+ EXIT(False)
+try:
+ dev.Disconnect()
+except dbus.DBusException, error:
+ pass
+if dev.IsConnected():
+ print "Can't disconnected %s" % cm_wpa2_ap["name"]
+
+dev.Connect(cm_wpa2_ap["name"])
+EXIT(dev.IsConnected())
+
+
+#if manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1) == False:
+# print 'Cannot access WiFi'
+# EXIT(False)
+#svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+#if svc == None:
+# print 'There is no AP named shz13-otc-cisco-cm'
+# EXIT(False)
+#try:
+# svc.Disconnect()
+#except dbus.DBusException, error:
+# pass
+#
+#print 'Connecting to Guest Network'
+#dev = WiFiGuestDevice()
+#svc1 = dev.GetService()
+#props = svc1.GetProperties()
+#print 'name is %s' % props['Name']
+#if svc1.BroadcastPing(1400):
+# print 'Connected'
+#else:
+# print 'Not connected'
+# EXIT(False)
+#
+#del manager
+#manager = Manager()
+#svc = manager.GetServiceByName('shz13-otc-cisco-cm')
+#if svc == None:
+# print 'There is no AP named shz13-otc-cisco-cm'
+# EXIT(False)
+#print 'Connecting to first AP without providing password'
+#svc.Connect()
+#if svc.BroadcastPing(1400):
+# print 'Connected'
+#else:
+# print 'Not connected'
+# EXIT(False)
+#
+#EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel1
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel10
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 10)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel11
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 11)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel2
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 2)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel3
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 3)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel4
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 4)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel5
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 5)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel6
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 6)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel7
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 7)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel8
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 8)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WF_Channel9
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 9)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_BigBroadcastPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+EXIT(svc.BroadcastPing(1400))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_Connect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+dev.Connect(cm_open_ap_essid)
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_DeviceIsExist
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+EXIT(dev.IsExist())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_Disconnect
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+dev.Connect(cm_open_ap_essid)
+if dev.IsConnected() == False:
+ print 'The Wifi is not connected'
+ Exit(False)
+
+svc = dev.GetService()
+svc.Disconnect()
+EXIT(dev.IsConnected() == False)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_HasDHCP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+EXIT(svc.IsDHCP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_HasIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+EXIT(svc.HasIP())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IfconfigDown
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+ret = dev.ifconfigDown()
+if ret == False:
+ print 'ifconfig down failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+tech = dev.GetTechnology()
+properties = tech.GetProperties()
+print 'Device Status is now %s' % properties['State']
+dev.ifconfigUP()
+time.sleep(2)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IfconfigUp
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+from common import *
+dev = WiFiGuestDevice()
+dev.ifconfigDown()
+time.sleep(2)
+ret = dev.ifconfigUP()
+if ret == False:
+ print 'ifconfig up failure is not connman issue'
+ EXIT(True)
+time.sleep(2)
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+if svc.BroadcastPing() != True:
+ print 'Cannot ping'
+ EXIT(False)
+EXIT(True)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IsPoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IsReEnableWorks
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+EXIT(dev.IsReEnableWorks())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IsReady
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+svc = dev.GetService()
+EXIT(svc.IsReady())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_IsSCPWork
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+EXIT(dev.IsSCPWork())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_PoweredOff
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+if dev.IsPoweredOff():
+ print 'Device is disabled'
+ print 'ReEnabled it...'
+ dev.PoweredOn()
+if dev.IsPoweredOff():
+ print 'Device is still disabled'
+ EXIT(False)
+dev.PoweredOff()
+ret = dev.IsPoweredOff()
+dev.PoweredOn()
+EXIT(ret)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_PoweredOn
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice()
+if dev.IsPoweredOn():
+ print 'Device is enabled'
+ print 'Disable it...'
+ dev.PoweredOff()
+if dev.IsPoweredOn():
+ print 'Device is still enabled'
+ EXIT(False)
+dev.PoweredOn()
+EXIT(dev.IsPoweredOn())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WG_SmallBroadcastPing
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiGuestDevice(cm_open_ap_essid)
+svc = dev.GetService()
+EXIT(svc.BroadcastPing(64))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP128Long
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(not manager.ConnectWiFi('111122223333444455556666111', 'wep128',
+ 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP128Short
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(not manager.ConnectWiFi('1111222233334444555566661', 'wep128', 1,
+ 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP128Wrong
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('11112222333344445555666611', 'wep128', 1, 0, 1)
+EXIT(not manager.ConnectAP(cm_apset_ap_essid, '11112222333354445555666611', 'wep128', 1,
+ 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP128ascii
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1)
+EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'baaaaaaaaaaaa', 'wep128', 1, 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP40Long
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(not manager.ConnectWiFi('11110000000', 'wep64', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP40Short
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(not manager.ConnectWiFi('111100000', 'wep64', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP40Wrong
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('1111000000', 'wep64', 1, 0, 1)
+EXIT(not manager.ConnectAP(cm_apset_ap_essid, '1111100000', 'wep64', 1, 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WN_WEP40ascii
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('6161616161', 'wep64', 1, 0, 1)
+EXIT(not manager.ConnectAP(cm_apset_ap_essid, 'aaaab', 'wep64', 1, 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_Broadcast
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_Hidden
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 1, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_Open
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+# EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1))
+dev = WiFiDevice()
+dev.Connect(cm_open_ap_essid)
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenBroadcastRSN
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenBroadcastTKIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenBroadcastWEP128
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0,
+ 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenBroadcastWEP40
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenHiddenRSN
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 1, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenHiddenTKIP
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 1, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenHiddenWEP128
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 1,
+ 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_OpenHiddenWEP40
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 1, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_PSK1
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'psk1', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_PSK2
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'psk2', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_RSN
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('sharedsecret', 'rsn', 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_RSN_Download
+#
+
+import sys
+import os
+import subprocess
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#Updated By JH
+
+#dev = WiFiDevice()
+#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'rsn', 1, 0, 1)
+#EXIT(dev.Download())
+proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True)
+dev = WiFiDevice()
+dev.Connect(cm_wpa2_ap["name"])
+proc.kill()
+EXIT(dev.download())
+
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_RSN_Upload
+#
+
+import sys
+import os
+import subprocess
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#Updated By JH
+#dev = WiFiDevice()
+#manager.ConnectAP(cm_ap_essid_rsn, cm_ap_rsn_key, 'psk', 1, 0, 1)
+#EXIT(dev.Upload())
+
+proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True)
+dev = WiFiDevice()
+dev.Connect(cm_wpa2_ap["name"])
+proc.kill()
+EXIT(dev.upload())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_Shared
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_SharedBroadcastWEP128
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 0,
+ 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_SharedBroadcastWEP40
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_SharedHiddenWEP128
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 0, 1,
+ 1))
+
+# manager.Apset("61616161616161616161616161", "wep128", 1, 0, 1)
+# EXIT(manager.ConnectAP("11112222333344445555666611", "wep128", 1, 0, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_SharedHiddenWEP40
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('1111000000', 'wep64', 0, 1, 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP128
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+EXIT(manager.ConnectWiFi('11112222333344445555666611', 'wep128', 1, 0,
+ 1))
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP128ascii
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('61616161616161616161616161', 'wep128', 1, 0, 1)
+EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaaaaaaaaaa', 'wep128', 1, 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP40
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#EXIT(manager.ConnectWiFi('1111000000', 'wep64', 1, 0, 1))
+dev = WiFiDevice()
+dev.Connect("test-ivi-wep-ap")
+EXIT(dev.IsConnected())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP40ascii
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+manager.Apset('6161616161', 'wep64', 1, 0, 1)
+EXIT(manager.ConnectAP(cm_apset_ap_essid, 'aaaaa', 'wep64', 1, 0, 1))
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Download
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1)
+EXIT(dev.Download())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WEP_Upload
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+dev = WiFiDevice()
+manager.ConnectAP(cm_ap_essid_wep64, cm_ap_wep64_key, 'wep64', 1, 0, 1)
+EXIT(dev.Upload())
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: CM_WS_WPA
+#
+
+import sys
+import os
+import subprocess
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+from common import *
+
+#Updated By JH
+#EXIT(manager.ConnectWiFi('sharedsecret', 'wpa', 1, 0, 1))
+os.chdir(os.path.dirname(sys.argv[0]))
+proc = subprocess.Popen("./simple-agent Name=%s Passphrase=%s" %(cm_wpa2_ap["name"], cm_wpa2_ap["password"]), shell=True)
+os.chdir(os.getcwd())
+dev = WiFiDevice()
+try:
+ dev.Connect(cm_wpa2_ap["name"])
+finally:
+ proc.kill()
+
+EXIT(dev.IsConnected())
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2008-2009 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.Cleanup()
--- /dev/null
+#!/usr/bin/python
+
+import gobject
+
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+import sys
+
+class Canceled(dbus.DBusException):
+ _dbus_error_name = "net.connman.Error.Canceled"
+
+class LaunchBrowser(dbus.DBusException):
+ _dbus_error_name = "net.connman.Agent.Error.LaunchBrowser"
+
+class Agent(dbus.service.Object):
+ name = None
+ ssid = None
+ identity = None
+ passphrase = None
+ wpspin = None
+ username = None
+ password = None
+
+ @dbus.service.method("net.connman.Agent",
+ in_signature='', out_signature='')
+ def Release(self):
+ print("Release")
+ mainloop.quit()
+
+ def input_passphrase(self):
+ response = {}
+
+ if not self.identity and not self.passphrase and not self.wpspin:
+ print "Service credentials requested, type cancel to cancel"
+ args = raw_input('Answer: ')
+
+ for arg in args.split():
+ if arg.startswith("cancel"):
+ response["Error"] = arg
+ if arg.startswith("Identity="):
+ identity = arg.replace("Identity=", "", 1)
+ response["Identity"] = identity
+ if arg.startswith("Passphrase="):
+ passphrase = arg.replace("Passphrase=", "", 1)
+ response["Passphrase"] = passphrase
+ if arg.startswith("WPS="):
+ wpspin = arg.replace("WPS=", "", 1)
+ response["WPS"] = wpspin
+ break
+ else:
+ if self.identity:
+ response["Identity"] = self.identity
+ if self.passphrase:
+ response["Passphrase"] = self.passphrase
+ if self.wpspin:
+ response["WPS"] = self.wpspin
+
+ return response
+
+ def input_username(self):
+ response = {}
+
+ if not self.username and not self.password:
+ print "User login requested, type cancel to cancel"
+ print "or browser to login through the browser by yourself."
+ args = raw_input('Answer: ')
+
+ for arg in args.split():
+ if arg.startswith("cancel") or arg.startswith("browser"):
+ response["Error"] = arg
+ if arg.startswith("Username="):
+ username = arg.replace("Username=", "", 1)
+ response["Username"] = username
+ if arg.startswith("Password="):
+ password = arg.replace("Password=", "", 1)
+ response["Password"] = password
+ else:
+ if self.username:
+ response["Username"] = self.username
+ if self.password:
+ response["Password"] = self.password
+
+ return response
+
+ def input_hidden(self):
+ response = {}
+
+ if not self.name and not self.ssid:
+ args = raw_input('Answer ')
+
+ for arg in args.split():
+ if arg.startswith("Name="):
+ name = arg.replace("Name=", "", 1)
+ response["Name"] = name
+ break
+ if arg.startswith("SSID="):
+ ssid = arg.replace("SSID", "", 1)
+ response["SSID"] = ssid
+ break
+ else:
+ if self.name:
+ response["Name"] = self.name
+ if self.ssid:
+ response["SSID"] = self.ssid
+
+ return response
+
+ @dbus.service.method("net.connman.Agent",
+ in_signature='oa{sv}',
+ out_signature='a{sv}')
+ def RequestInput(self, path, fields):
+ print "RequestInput (%s,%s)" % (path, fields)
+
+ response = {}
+
+ if fields.has_key("Name"):
+ response.update(self.input_hidden())
+ if fields.has_key("Passphrase"):
+ response.update(self.input_passphrase())
+ if fields.has_key("Username"):
+ response.update(self.input_username())
+
+ if response.has_key("Error"):
+ if response["Error"] == "cancel":
+ raise Canceled("canceled")
+ return
+ if response["Error"] == "browser":
+ raise LaunchBrowser("launch browser")
+ return
+
+ print "returning (%s)" % (response)
+
+ return response
+
+ @dbus.service.method("net.connman.Agent",
+ in_signature='os',
+ out_signature='')
+ def RequestBrowser(self, path, url):
+ print "RequestBrowser (%s,%s)" % (path, url)
+
+ print "Please login through the given url in a browser"
+ print "Then press enter to accept or some text to cancel"
+
+ args = raw_input('> ')
+
+ if len(args) > 0:
+ raise Canceled("canceled")
+
+ return
+
+ @dbus.service.method("net.connman.Agent",
+ in_signature='os',
+ out_signature='')
+ def ReportError(self, path, error):
+ print "ReportError %s, %s" % (path, error)
+ retry = raw_input("Retry service (yes/no): ")
+ if (retry == "yes"):
+ class Retry(dbus.DBusException):
+ _dbus_error_name = "net.connman.Agent.Error.Retry"
+
+ raise Retry("retry service")
+ else:
+ return
+
+
+ @dbus.service.method("net.connman.Agent",
+ in_signature='', out_signature='')
+ def Cancel(self):
+ print "Cancel"
+
+class VpnAgent(dbus.service.Object):
+ name = None
+ host = None
+ cookie = None
+ username = None
+ password = None
+
+ @dbus.service.method("net.connman.vpn.Agent",
+ in_signature='', out_signature='')
+ def Release(self):
+ print("Release VPN agent")
+
+ def input_cookie(self):
+ response = {}
+
+ if not self.cookie:
+ print "VPN credentials requested, type cancel to cancel"
+ args = raw_input('Answer: ')
+
+ for arg in args.split():
+ if arg.startswith("cancel"):
+ response["Error"] = arg
+ if arg.startswith("Cookie="):
+ cookie = arg.replace("Cookie=", "", 1)
+ response["OpenConnect.Cookie"] = cookie
+ else:
+ if self.cookie:
+ response["OpenConnect.Cookie"] = self.cookie
+
+ return response
+
+ def input_username(self):
+ response = {}
+
+ if not self.username and not self.password:
+ print "User login requested, type cancel to cancel"
+ args = raw_input('Answer: ')
+
+ for arg in args.split():
+ if arg.startswith("cancel"):
+ response["Error"] = arg
+ if arg.startswith("Username="):
+ username = arg.replace("Username=", "", 1)
+ response["Username"] = username
+ if arg.startswith("Password="):
+ password = arg.replace("Password=", "", 1)
+ response["Password"] = password
+ else:
+ if self.username:
+ response["Username"] = self.username
+ if self.password:
+ response["Password"] = self.password
+
+ return response
+
+ @dbus.service.method("net.connman.vpn.Agent",
+ in_signature='oa{sv}',
+ out_signature='a{sv}')
+ def RequestInput(self, path, fields):
+ print "RequestInput (%s,%s)" % (path, fields)
+
+ response = {}
+
+ if fields.has_key("OpenConnect.Cookie"):
+ response.update(self.input_cookie())
+ if fields.has_key("Username") or fields.has_key("Password"):
+ response.update(self.input_username())
+
+ if response.has_key("Error"):
+ if response["Error"] == "cancel":
+ raise Canceled("canceled")
+ return
+
+ print "returning (%s)" % (response)
+
+ return response
+
+ @dbus.service.method("net.connman.vpn.Agent",
+ in_signature='os',
+ out_signature='')
+ def ReportError(self, path, error):
+ print "ReportError %s, %s" % (path, error)
+ retry = raw_input("Retry service (yes/no): ")
+ if (retry == "yes"):
+ class Retry(dbus.DBusException):
+ _dbus_error_name = "net.connman.vpn.Agent.Error.Retry"
+
+ raise Retry("retry service")
+ else:
+ return
+
+
+ @dbus.service.method("net.connman.vpn.Agent",
+ in_signature='', out_signature='')
+ def Cancel(self):
+ print "Cancel"
+
+def vpnNameOwnerChanged(proxy):
+ if proxy:
+ print("vpnd is connected to system bus")
+ try:
+ path = "/test/vpn_agent"
+ vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn',
+ "/"),
+ 'net.connman.vpn.Manager')
+ vpn_manager.RegisterAgent(path)
+ except:
+ print "vpn agent is not registered"
+ else:
+ print("vpnd is disconnected from system bus")
+ vpn_manager = None
+
+def print_usage():
+ print "Usage:"
+ print "For hidden service:"
+ print "%s Name=<hidden service name> [SSID=<hidden ssid>]" % (sys.argv[0])
+ print "For EAP/WPA input:"
+ print "%s Identity=<identity> Passphrase=<passphrase> WPS=<wpspin>" % (sys.argv[0])
+ print "For WISPr login, L2TP or PPTP input:"
+ print "%s Username=<username> Password=<password>" % (sys.argv[0])
+ print "For OpenConnect input:"
+ print "%s Cookie=<string>" % (sys.argv[0])
+ print "Help: %s help" % (sys.argv[0])
+ sys.exit(1)
+
+if __name__ == '__main__':
+ if len(sys.argv) == 2 and sys.argv[1] == "help":
+ print_usage()
+
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+ bus = dbus.SystemBus()
+ manager = dbus.Interface(bus.get_object('net.connman', "/"),
+ 'net.connman.Manager')
+
+ path = "/test/agent"
+ object = Agent(bus, path)
+
+ try:
+ vpn_manager = dbus.Interface(bus.get_object('net.connman.vpn', "/"),
+ 'net.connman.vpn.Manager')
+ vpn_path = "/test/vpn_agent"
+ vpn_object = VpnAgent(bus, vpn_path)
+ except:
+ vpn_manager = None
+ print "net.connman.vpn is not present"
+
+ if len(sys.argv) >= 2:
+ for arg in sys.argv[1:]:
+ if arg.startswith("Name="):
+ object.name = arg.replace("Name=", "", 1)
+ elif arg.startswith("SSID="):
+ object.ssid = arg.replace("SSID=", "", 1)
+ elif arg.startswith("Identity="):
+ object.identity = arg.replace("Identity=", "", 1)
+ elif arg.startswith("Passphrase="):
+ object.passphrase = arg.replace("Passphrase=", "", 1)
+ elif arg.startswith("WPS="):
+ object.wpspin = arg.replace("WPS=", "", 1)
+ elif arg.startswith("Username="):
+ object.username = arg.replace("Username=", "", 1)
+ vpn_object.username = arg.replace("Username=", "", 1)
+ elif arg.startswith("Password="):
+ object.password = arg.replace("Password=", "", 1)
+ vpn_object.password = arg.replace("Password=", "", 1)
+ elif arg.startswith("Cookie="):
+ vpn_object.cookie = arg.replace("Cookie=", "", 1)
+ else:
+ print_usage()
+
+ try:
+ manager.RegisterAgent(path)
+ except:
+ print "Cannot register connman agent."
+
+ if vpn_manager != None:
+ try:
+ vpn_manager.RegisterAgent(vpn_path)
+ bus.watch_name_owner('net.connman.vpn', vpnNameOwnerChanged)
+ except:
+ "Cannot register vpn agent"
+
+ mainloop = gobject.MainLoop()
+ mainloop.run()
+
+ #manager.UnregisterAgent(path)
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/../common"
+sys.path.append(dir)
+from common import *
+
+
+manager.StartupWiFi()
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Functions used all signal test cases
+#
+
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+
+from threading import Thread
+
+def f(
+ name,
+ value,
+ path,
+ interface,
+ ):
+
+ print 'In f'
+
+
+func = f
+
+
+class SignalBase:
+
+ def __init__(self):
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+ bus = dbus.SystemBus()
+ print 'Add signal receiver'
+ self.Add_Signal_Receiver(bus)
+ print 'Add signal receiver done'
+ self.mainloop = gobject.MainLoop()
+ self.my_ret = False
+ self.record = 0
+
+ def Add_Signal_Receiver(self, bus):
+ pass
+
+ def property_changed(
+ self,
+ name,
+ value,
+ path=None,
+ interface=None,
+ ):
+
+# print 'Changed property name = %s path = %s interface = %s' \
+# % (name, path, interface)
+
+ if name in self.property_name:
+ print 'Changed property name = %s path = %s interface = %s' \
+ % (name, path, interface)
+ self.my_ret = True
+ self.mainloop.quit()
+# else:
+# print "The property %s for %s %s didn't changed" % (name, path, interface)
+# self.my_ret = False
+# self.mainloop.quit()
+
+class Trigger(Thread):
+ def __init__ (self,func):
+ Thread.__init__(self)
+ self.func = func
+ Thread.daemon = True
+ def run(self):
+ self.func()
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Signal functions used when testing signal in Connman
+#
+
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+from SignalBase import *
+
+
+def property_changed(
+ name,
+ value,
+ path,
+ interface,
+ ):
+
+ func(name, value, path, interface)
+
+
+class SignalConnman(SignalBase):
+
+ def __init__(self):
+ SignalBase.__init__(self)
+
+ def Add_Signal_Receiver(self, bus):
+ bus.add_signal_receiver(property_changed,
+ bus_name='net.connman',
+ signal_name='PropertyChanged',
+ path_keyword='path',
+ interface_keyword='interface')
+
+ def property_changed(
+ self,
+ name,
+ value,
+ path,
+ interface,
+ ):
+
+ SignalBase.property_changed(self, name, value, path, interface)
+
+
+sig = SignalConnman()
+from common import *
+
+
+def signal_connman(
+ name,
+ value,
+ path,
+ interface,
+ ):
+
+ sig.property_changed(name, value, path, interface)
+
+
+func = signal_connman
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Signal functions used when property in Manager changes
+#
+
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+from SignalBase import *
+
+
+def property_changed(name, value):
+ func(name, value)
+
+
+class SignalManager(SignalBase):
+
+ def __init__(self):
+ SignalBase.__init__(self)
+
+ def Add_Signal_Receiver(self, bus):
+ bus.add_signal_receiver(property_changed,
+ bus_name='net.connman',
+ signal_name='PropertyChanged',
+ dbus_interface='net.connman.Manager'
+ )
+
+ def property_changed(self, name, value):
+ SignalBase.property_changed(self, name, value)
+
+
+sig = SignalManager()
+from common import *
+
+
+def signal_manager(name, value):
+ sig.property_changed(name, value)
+
+
+func = signal_manager
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Signal functions when property in Service
+#
+
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+from SignalBase import *
+
+
+def property_changed(name, value, path):
+ func(name, value, path, None)
+
+
+class SignalService(SignalBase):
+
+ def __init__(self):
+ SignalBase.__init__(self)
+
+ def Add_Signal_Receiver(self, bus):
+ print 'Added Signal'
+ bus.add_signal_receiver(property_changed,
+ bus_name='net.connman',
+ dbus_interface='net.connman.Service'
+ , signal_name='PropertyChanged',
+ path_keyword='path')
+
+ def property_changed(
+ self,
+ name,
+ value,
+ path,
+ interface=None,
+ ):
+
+ SignalBase.property_changed(self, name, value, interface)
+
+
+sig = SignalService()
+from common import *
+
+
+def signal_service(
+ name,
+ value,
+ path,
+ interface,
+ ):
+
+ sig.property_changed(name, value, path, interface)
+
+
+func = signal_service
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: Signal functions used when property in Manager changes
+#
+
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+from SignalBase import *
+
+
+def property_changed(name, value):
+ func(name, value)
+
+
+class SignalTechnology(SignalBase):
+
+ def __init__(self):
+ SignalBase.__init__(self)
+
+ def Add_Signal_Receiver(self, bus):
+ bus.add_signal_receiver(property_changed,
+ bus_name='net.connman',
+ signal_name='PropertyChanged',
+ dbus_interface='net.connman.Technology'
+ )
+
+ def property_changed(self, name, value):
+ SignalBase.property_changed(self, name, value)
+
+
+sig = SignalTechnology()
+from common import *
+
+
+def signal_technology(name, value):
+ sig.property_changed(name, value)
+
+
+func = signal_technology
--- /dev/null
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Authors:
+# Wang, Jing J <jing.j.wang@intel.com>
+# Changlog:
+#
+#!/bin/sh
+
+if [ -z "$1" ]; then
+ echo "Warning: Please specify execution command"
+ exit 1
+fi
+
+#Find default user, assuming the one who launch Xorg
+usr=`ps -C libsocialweb-core -o user=`
+if [ $? -ne 0 ]; then
+ echo "Error: Fail to get Libsocialweb user"
+ exit 1
+fi
+
+su -l $usr -c "export DISPLAY=:0.0;CM_Bearer=$1 /opt/tts-connman-tests/Bearer $2"
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: common functions used in all test cases
+#
+
+import dbus
+import string
+import commands
+import time
+import re
+import subprocess
+import os, sys
+from config import *
+from threading import Timer
+
+#chagne timeout from 90 to 360
+TIMEOUT = 300
+
+###################################################
+# ........Common Function
+###################################################
+
+def common_timeout():
+ print "Oops Timeout!!!"
+ os.system("(sleep 1; killall `basename " + sys.argv[0] + "`)")
+
+def cmd_exists(cmd):
+ return os.path.exists(cmd)
+# return subprocess.call(["which", cmd],
+# stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0
+
+
+def IPIsValid(ip):
+ return re.match("(\d\d?\d?\.){3}\d\d?\d?", ip) != None
+
+
+def MacAddrIsValid(mac):
+ return re.match("([a-fA-F0-9]{2}[:|\-]?){5}[a-fA-F0-9]{2}", mac) \
+ != None
+
+
+def EXIT(ret):
+ if ret == True:
+ print 'Test Case PASS'
+ else:
+ print 'Test Case FAIL'
+ exit(ret != True)
+
+def EXIT1(ret, op):
+ if ret == True:
+ op()
+ print 'Test Case PASS'
+ else:
+ op()
+ print 'Test Case FAIL'
+ exit(ret != True)
+
+def ASSERT(ret, msg, op):
+ if ret == False:
+ op()
+ print msg
+ print 'Test Case FAIL'
+ exit(ret != True)
+
+def IsDaemonExist(daemon):
+ command = "ps aux|grep %s" %(daemon)
+ ret = commands.getstatusoutput(command)
+ output = ret[1].split('\n')
+ for item in output[:]:
+ if item.find('grep %s' %(daemon)) != -1:
+ output.remove(item)
+ if ret[0] == 0 and len(output) > 0:
+ print "Daemon is %s" %(output)
+ return True
+ else:
+ print "daemon %s is not lauched" %(daemon)
+ return False
+
+def OneDaemonExist(daemon):
+ command = "ps aux|grep %s" %(daemon)
+ ret = commands.getstatusoutput(command)
+ output = ret[1].split('\n')
+ for item in output[:]:
+ if item.find('grep %s' %(daemon)) != -1:
+ output.remove(item)
+ if ret[0] == 0 and len(output) == 1:
+ print "Daemon is %s" %(output)
+ return True
+ else:
+ return False
+
+
+###################################################
+# ........Class Manager
+###################################################
+
+
+class Manager:
+
+ def __init__(self):
+ self.bus = dbus.SystemBus()
+ if self.bus == None:
+ print 'There is no dbus, please check'
+ EXIT(False)
+ self.manager = \
+ dbus.Interface(self.bus.get_object('net.connman', '/'
+ ), 'net.connman.Manager')
+ if self.manager == None:
+ print 'There is no connmand...do you startup connmand?'
+ EXIT(False)
+ print 'Attached to a connman manager'
+ self.properties = self.manager.GetProperties()
+ self.LatestSvc = None
+
+ def GetTechnologies(self):
+ return self.manager.GetTechnologies()
+
+ def GetServices(self):
+ return self.manager.GetServices()
+
+ def GetProperties(self):
+ return self.manager.GetProperties()
+
+ def GetServices(self):
+ return self.manager.GetServices()
+
+ def SetProperty(self, name, value):
+ self.manager.SetProperty(name, value)
+ print 'Set Manager property %s = %s' % (name, value)
+
+ def GetState(self):
+ properties = self.GetProperties()
+ return properties["State"]
+
+ def GetOfflineMode(self):
+ properties = self.GetProperties()
+ return properties["OfflineMode"]
+
+ def CreateProfile(self, name):
+ print 'Create profile %s' % name
+ return self.manager.CreateProfile(name)
+
+ def RemoveProfile(self, path):
+ print 'Removing profile %s ...' % path
+ self.manager.RemoveProfile(path)
+ print 'Removed'
+
+ def RequestScan(self, type):
+ if type == '':
+ print 'Scanning for all technologies...'
+ type = 'wifi'
+ else:
+ print 'Scanning for %s technology...' % type
+ bus = dbus.SystemBus()
+ path = "/net/connman/technology/" + type
+ technology = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Technology")
+ technology.Scan()
+ print 'Done'
+
+ def EnableTechnology(self, type):
+ self.Online()
+ if type == '':
+ print 'EnableTechnology for all technologies...'
+ for (path, properties) in manager.GetTechnologies():
+ print path
+ technology = manager.GetSubObject(path, 'Technology')
+ print 'Enabling %s...' % tech
+ try:
+ technology.SetProperty("Powered", True)
+ except dbus.DBusException, e:
+ pass
+
+# print 'EnableTechnology for all technologies...'
+# props = self.manager.GetProperties()
+# for tech in props['EnabledTechnologies']:
+# path = "/net/connman/technology/" + tech
+# technology = manager.GetSubObject(path, 'Technology')
+# print 'Enabling %s...' % tech
+# try:
+# technology.SetProperty("Powered", True)
+# except dbus.DBusException, e:
+# pass
+
+ else:
+ print 'EnableTechnology for %s technology...' % type
+ path = "/net/connman/technology/" + type
+ technology = manager.GetSubObject(path, 'Technology')
+ try:
+ technology.SetProperty("Powered", True)
+ except dbus.DBusException, e:
+ pass
+ time.sleep(5)
+ print 'Done'
+
+ def DisableTechnology(self, type):
+ if type == '':
+ print 'DisableTechnology for all technologies...'
+ for (path, properties) in manager.GetTechnologies():
+ print path
+ technology = manager.GetSubObject(path, 'Technology')
+ print 'Enabling %s...' % tech
+ try:
+ technology.SetProperty("Powered", False)
+ except dbus.DBusException, e:
+ pass
+# props = self.manager.GetProperties()
+# for tech in props['EnabledTechnologies']:
+# path = "/net/connman/technology/" + tech
+# technology = manager.GetSubObject(path, 'Technology')
+# print 'Disabling %s...' % tech
+# try:
+# technology.SetProperty("Powered", False)
+# except dbus.DBusException, e:
+# pass
+
+# try:
+# self.manager.DisableTechnology(tech)
+# except dbus.DBusException, e:
+# pass
+ else:
+ print 'DisableTechnology for %s technology...' % type
+# try:
+# self.manager.DisableTechnology(type)
+# except dbus.DBusException, e:
+# pass
+ path = "/net/connman/technology/" + type
+ technology = manager.GetSubObject(path, 'Technology')
+ try:
+ technology.SetProperty("Powered", False)
+ except dbus.DBusException, e:
+ pass
+
+
+ time.sleep(5)
+ print 'Done'
+
+ def Startup(self):
+ self.DisableTechnology('')
+ self.EnableTechnology('ethernet')
+ eth = EthDevice()
+ time.sleep(10)
+ self.EnableTechnology('wifi')
+ time.sleep(10)
+
+ def StartupWiFi(self):
+ self.Startup()
+
+ def StartupEthernet(self):
+ self.DisableTechnology('')
+ self.EnableTechnology('ethernet')
+ eth = EthDevice()
+ time.sleep(10)
+
+ def Startup3G(self):
+ self.DisableTechnology('')
+ self.EnableTechnology('cellular')
+ time.sleep(10)
+
+ def StartupBT(self):
+ self.DisableTechnology('')
+ self.EnableTechnology('ethernet')
+ eth = EthDevice()
+ time.sleep(10)
+ self.EnableTechnology('bluetooth')
+ time.sleep(10)
+
+ def Cleanup(self):
+ self.DisableTechnology('')
+ self.EnableTechnology('ethernet')
+ eth = EthDevice()
+ time.sleep(10)
+ self.EnableTechnology('wifi')
+ time.sleep(5)
+
+ def RegisterAgent(self, path):
+ print 'RegisterAgent for path'
+ self.manager.RegisterAgent(path)
+
+ def UnregisterAgent(self, path):
+ print 'UnregisterAgent for path'
+ self.manager.UnregisterAgent(path)
+
+ def RegisterCounter(self, path, interval):
+ print 'RegisterCounter for path'
+ self.manager.RegisterCounter(path, interval)
+
+ def UnregisterCounter(self, path):
+ print 'UnregisterCounter for path'
+ self.manager.UnregisterCounter(path)
+
+ def RequestSession(self, bearer):
+ print 'Request a networking session for %s' % bearer
+ return self.manager.RequestSession(bearer)
+
+ def ReleaseSession(self):
+ print 'Release a networking session'
+ return self.manager.ReleaseSession()
+
+ def Offline(self):
+ self.SetProperty('OfflineMode', dbus.Boolean(1))
+
+ def Online(self):
+ self.SetProperty('OfflineMode', dbus.Boolean(0))
+
+ def GetSubObject(self, path, name):
+ interface = 'net.connman.' + name
+ self.subobj = \
+ dbus.Interface(self.bus.get_object('net.connman',
+ path), interface)
+ return self.subobj
+
+ def ConnectService(
+ self,
+ ssid,
+ passphrase='',
+ security='none',
+ ):
+
+ print 'Connect to Service %s with passphrase = %s security = %s...' \
+ % (ssid, passphrase, security)
+ try:
+ path = self.manager.ConnectService({
+ 'Type': 'wifi',
+ 'Mode': 'managed',
+ 'SSID': ssid,
+ 'Security': security,
+ 'Passphrase': passphrase,
+ })
+ except dbus.DBusException, e:
+ return None
+ print 'Connected to %s' % path
+ return path
+
+
+ # ConnectWiFi: Connect to an WiFi AP with relative params
+ # passphrase: passphrase string
+ # security: wep64/wep128/psk/psk1/psk2/wpa/rsn/wep64s/wep128s
+ # open: 0: shared 1: open
+ # hidden: 0: broadcast 1: hidden
+ # channel: 1 - 11
+ def ConnectWiFi(
+ self,
+ passphrase='',
+ security='psk',
+ open=1,
+ hidden=0,
+ channel=1,
+ ):
+ if self.Apset(passphrase, security, open, hidden, channel):
+ return self.ConnectAP(cm_apset_ap_essid, passphrase, security,
+ open, hidden, channel)
+ return False
+ def TurnAP(self, state):
+ apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path
+ if state == 'on':
+ apset_cmd = apset_cmd + ' activate'
+ else:
+ apset_cmd = apset_cmd + ' shutdown'
+
+ ret = commands.getstatusoutput(apset_cmd)
+ time.sleep(5)
+ if ret[0] != 0:
+ print 'Command %s return fail' % apset_cmd
+ return False
+ print 'apset done'
+ return True
+
+ # Apset: Setting AP with relative params
+ # Parameter values are same as ConnectWiFi
+ def Apset(
+ self,
+ passphrase='',
+ security='psk',
+ open=1,
+ hidden=0,
+ channel=1,
+ ):
+ print 'Setting AP...'
+ apstr = ' MODE N2.4-ONLY '
+ apstr += ' CHANNEL ' + `channel`
+ if open == 1:
+ apstr += ' AUTH open '
+ else:
+ apstr += ' AUTH shared '
+ if hidden == 0:
+ apstr += ' BCAST enable '
+ else:
+ apstr += ' BCAST disable '
+ if security == 'wep64':
+ apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `passphrase`
+ elif security == 'wep128':
+ apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' + `passphrase`
+ if security == 'wep64s':
+ apstr += ' WEP enable ENCRYPT 64 KEY1 ' + `4141414141`
+ elif security == 'wep128s':
+ apstr += ' AUTH WEP128 ENCRYPT 128 KEY1 ' \
+ + `41414141414141414141414141`
+ elif security == 'psk':
+ apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP '
+ elif security == 'psk1':
+ apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP '
+ elif security == 'psk2':
+ apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES '
+ elif security == 'wpa':
+ apstr += ' WEP disable AUTH psk WPA-CRYPTO TKIP '
+ elif security == 'rsn':
+ apstr += ' WEP disable AUTH psk2 WPA-CRYPTO AES '
+ print 'apset string is %s' % apstr
+ apset_cmd = 'ssh ' + cm_apset_server + ' ' + cm_apset_server_path \
+ + apstr
+ ret = commands.getstatusoutput(apset_cmd)
+ if ret[0] != 0:
+ print 'Command %s return fail' % apset_cmd
+ return False
+ print 'apset done'
+ print 'Enable/Disable wifi to refresh ap list'
+ manager.DisableTechnology('wifi')
+ time.sleep(3)
+ manager.EnableTechnology('wifi')
+ time.sleep(3)
+
+ return True
+
+ # Refer to ConnectWiFi
+ def ConnectAP(
+ self,
+ essid=cm_apset_ap_essid,
+ passphrase='',
+ security='psk',
+ open=1,
+ hidden=0,
+ channel=1,
+ ):
+ print 'Connecting to AP...'
+ sec = ''
+ if security == 'wep64':
+ sec = 'wep'
+ elif security == 'wep128':
+ sec = 'wep'
+ if security == 'wep64s':
+ sec = 'wep'
+ passphrase = 's:AAAAA'
+ elif security == 'wep128s':
+ sec = 'wep'
+ passphrase = 's:AAAAAAAAAAAAA'
+ elif security == 'psk':
+ sec = 'psk'
+ elif security == 'psk1':
+ sec = 'psk'
+ elif security == 'psk2':
+ sec = 'psk'
+ elif security == 'wpa':
+ sec = 'wpa'
+ elif security == 'rsn':
+ sec = 'rsn'
+ self.manager.RequestScan('wifi')
+ time.sleep(2)
+ path = self.ConnectService(essid, passphrase,
+ sec)
+ print 'essid is %s passphrase is %s sec is %s' % (essid, passphrase, sec)
+ time.sleep(5)
+ print 'path is %s' % path
+ if path == None:
+ print "ConnectService failed"
+ return None
+ i = 1
+ while i < 3:
+ svc = self.GetService(path)
+ if svc == None:
+ continue
+ if svc.IsReady():
+ self.LatestSvc = svc
+ break
+ else:
+ svc.Connect()
+ time.sleep(5)
+ i += 1
+ time.sleep(5)
+ return svc.BroadcastPing()
+
+ def GetService(self, path=None):
+ if path == None:
+ return self.LatestSvc
+ service = None
+ self.LatestSvc = None
+ try:
+ service = \
+ dbus.Interface(self.bus.get_object('net.connman'
+ , path), 'net.connman.Service')
+ except dbus.DBusException, e:
+ return None
+ time.sleep(1)
+ svc = Service(service)
+ print 'Service %s found' % path
+ self.LatestSvc = svc
+ return svc
+
+ #Updated By JH
+# def GetServiceByName(self, Name):
+# props = self.GetProperties()
+# for path in props['Services']:
+# service = \
+# dbus.Interface(self.bus.get_object('net.connman'
+# , path), 'net.connman.Service')
+# properties = service.GetProperties()
+# if properties['Name'] == Name:
+# svc = Service(service)
+# return svc
+# return None
+ def GetServiceByName(self, Name):
+ services = self.GetServices()
+ for path, props in services:
+ service = dbus.Interface(self.bus.get_object('net.connman'
+ , path), 'net.connman.Service'
+ )
+ properties = service.GetProperties()
+
+ if properties['Name'] == Name:
+ return Service(service)
+
+
+def ManagerObjectIsReady():
+ if manager.bus == None:
+ print 'There is no dbus'
+ return False
+ if manager.manager == None:
+ print 'There is no connman, please check if there is connmand'
+ return False
+ return True
+
+
+def ManagerSubObjectIsReady(name):
+ SubObjectNameMap = {'Service': 'Services',
+ 'Technology': 'Technologies',
+ 'Profile': 'Profiles'}
+ name1 = SubObjectNameMap[name]
+ for path in manager.properties[name1]:
+ print path
+ service = manager.GetSubObject(path, name)
+ if service != None:
+ print 'There is at least one %s, the testing success!' \
+ % name
+ return True
+ print 'We cannot find any %s object, the testing fails!' % name
+ return False
+
+
+def ServiceObjectIsReady():
+ return ManagerSubObjectIsReady('Service')
+
+
+def TechnologyObjectIsReady():
+ return ManagerSubObjectIsReady('Technology')
+
+
+def ProfileObjectIsReady():
+ return ManagerSubObjectIsReady('Profile')
+
+
+###################################################
+# ........Class Service
+###################################################
+
+class Service:
+
+ def __init__(self, svc):
+ self.svc = svc
+
+ def GetProperties(self):
+ try:
+ self.properties = self.svc.GetProperties()
+ except dbus.DBusException, e:
+ return None
+ return self.properties
+
+ def GetProperty(self, name):
+ props = self.GetProperties()
+ if name in props.keys():
+ return props[name]
+ return None
+
+ def SetProperty(self, name, value):
+ print 'Set Service property %s = %s' % (name, value)
+ try:
+ self.svc.SetProperty(name, value)
+ except dbus.DBusException, e:
+ return False
+
+ def ClearProperty(self, name):
+ try:
+ self.svc.ClearProperty(name)
+ except dbus.DBusException, e:
+ return False
+
+ def Connect(self):
+ if self.svc == None:
+ print 'No such service'
+ return False
+ print 'Connecting...'
+ loop = 1
+ while loop < 3:
+ try:
+ self.svc.Connect()
+ except dbus.DBusException, e:
+ if e._dbus_error_name \
+ == 'net.connman.Error.AlreadyConnected':
+ print 'The service is already connected'
+ return True
+ elif e._dbus_error_name \
+ == 'net.connman.Error.InProgress':
+ loop = loop + 1
+ print 'Still in connecting'
+ time.sleep(10)
+ continue
+ else:
+ print e
+ return False
+ time.sleep(20)
+ if self.IsReady():
+ print 'Connected'
+ time.sleep(20)
+ return True
+ else:
+ print 'Not connected'
+ return False
+
+ def Disconnect(self):
+ try:
+ self.svc.Disconnect()
+ except dbus.DBusException, e:
+ return False
+
+ def Remove(self):
+ try:
+ self.svc.Remove()
+ except dbus.DBusException, e:
+ return False
+
+ def MoveBefore(self, service):
+ try:
+ self.svc.MoveBefore(service)
+ except dbus.DBusException, e:
+ return False
+
+ def MoveAfter(self, service):
+ try:
+ self.svc.MoveAfter(service)
+ except dbus.DBusException, e:
+ return False
+
+ def IsReady(self):
+ try:
+ self.properties = self.svc.GetProperties()
+ except dbus.DBusException, e:
+ return False
+ state = self.properties['State']
+ return state == 'ready' or state == 'online' or state == 'login'
+
+ # Basically we can get response through broadcast
+ def BroadcastPing(self, size=0):
+ if cmd_exists("/bin/ping") == False:
+ return self.HasIP()
+ count = 0
+ while count < 5:
+ ip = self.GetIP()
+ if ip != None:
+ break
+ time.sleep(5)
+ count += 1
+ if ip == None:
+ return False
+ ip1 = ip.split('.')
+ bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.255'
+ if size != 0:
+ ping_string = 'ping -c 5 -s %s -b %s' % (size, bip)
+ else:
+ ping_string = 'ping -c 5 -b %s' % bip
+ ret = commands.getstatusoutput(ping_string)
+ print '%s return %s' % (ping_string, ret[0])
+ if ret[0] == 0:
+ return True
+ # Guess if there is a machine xxx.xxx.xxx.1
+ bip = ip1[0] + '.' + ip1[1] + '.' + ip1[2] + '.1'
+ if size != 0:
+ ping_string = 'ping -c 5 -s %s -b %s' % (size, bip)
+ else:
+ ping_string = 'ping -c 5 -b %s' % bip
+ ret = commands.getstatusoutput(ping_string)
+ print '%s return %s' % (ping_string, ret[0])
+ if ret[0] == 0:
+ return True
+
+ try:
+ if self.Ping(64, self.GetGateway()):
+ return True
+ if self.Ping(64, self.GetNameserver()):
+ return True
+ except dbus.DBusException, e:
+ pass
+ # ping otc-qa, an ugly solution :-(
+ if self.Ping(64, cm_ping_server_ip):
+ return True
+ # Unfortuanately sometime test environment does not set
+ # ping response server, and even filter icmp.
+ # Since this function just test IP address work
+ # So just check some properties are set by dhcp
+ try:
+ if (self.GetGateway() != None):
+ return True
+ if (self.GetNameserver() != None):
+ return True
+# if (self.GetDomains() != None):
+# return True
+ except dbus.DBusException, e:
+ pass
+
+ return False
+
+ # If connected to Internet, we can always connect to www.intel.com
+ def Ping(self, size=0, hostname='www.intel.com'):
+ if cmd_exists("/bin/ping") == False:
+ return self.HasIP()
+ if size != 0:
+ ping_string = 'ping -c 5 -s %s %s' % (size, hostname)
+ else:
+ ping_string = 'ping -c 5 %s' % hostname
+ ret = commands.getstatusoutput(ping_string)
+ print '%s return %s' % (ping_string, ret[0])
+ return ret[0] == 0
+
+ def GetIP(self):
+ self.properties = self.GetProperties()
+ if self.properties == None:
+ return None
+ if 'IPv4' not in self.properties.keys():
+ print 'No IPv4 properties'
+ return None
+
+ if len(self.properties['IPv4']) == 0:
+ print 'Cannot get IPv4 for this device'
+ return None
+ return self.properties['IPv4']['Address']
+
+ def GetNameserver(self):
+ self.properties = self.GetProperties()
+ if self.properties == None:
+ return None
+ if "Nameservers" not in self.properties.keys():
+ print 'Cannot get Nameservers for this device'
+ return None
+ return self.properties['Nameservers'][0]
+
+ def GetGateway(self):
+ self.properties = self.GetProperties()
+ if self.properties == None:
+ return None
+ if "Gateway" not in self.properties['IPv4'].keys():
+ print 'Cannot get Gateway for this device'
+ return None
+ return self.properties['IPv4']['Gateway']
+
+ def HasIP(self):
+ ip = self.GetIP()
+ if ip == None:
+ return False
+ print 'IP address is %s' % ip
+ return IPIsValid(ip)
+
+ def IsDHCP(self):
+ self.properties = self.GetProperties()
+ if self.properties == None:
+ return False
+ method = self.properties['IPv4']['Method']
+ print 'IPv4 Method of the service is %s' % method
+ return method == 'dhcp'
+
+ def IsFixed(self):
+ self.properties = self.GetProperties()
+ if self.properties == None:
+ return False
+ method = self.properties['IPv4']['Method']
+ print 'IPv4 Method of the service is %s' % method
+ return method == 'fixed'
+
+
+###################################################
+# ........Class Device
+# The base class for Device, real device will
+# derived from this class
+###################################################
+
+
+class Device:
+
+ def __init__(self, name, nth, enable = True):
+ self.device = None
+ self.intf = None
+ self.tech = None
+# for path in manager.properties['Technologies']:
+ for (path, properties) in manager.GetTechnologies():
+ print path
+ technology = manager.GetSubObject(path, 'Technology')
+ properties = technology.GetProperties()
+ if "Name" not in properties.keys() or properties['Name'] != name:
+ continue
+ i = 1
+ self.manager = manager
+ self.tech = technology
+ self.name = name
+ self.type = properties['Type']
+ print 'Got it: %s' % path
+ if enable:
+ manager.EnableTechnology(self.type)
+ return
+ print 'No such device!'
+
+ def GetProperties(self):
+ return self.tech.GetProperties()
+
+ def SetProperty(self, name, value):
+ print 'Set Device property %s = %s' % (name, value)
+ self.tech.SetProperty(name, value)
+
+ def GetService(self, servicename=None):
+ #properties = self.manager.GetProperties()
+ #for path in properties['Services']:
+ # service = dbus.Interface(self.manager.bus.get_object('net.connman'
+ # , path), 'net.connman.Service'
+ # )
+# self.manager.RequestScan(self.type)
+ services = self.manager.GetServices()
+ for path,props in services:
+ service = dbus.Interface(self.manager.bus.get_object('net.connman'
+ , path), 'net.connman.Service'
+ )
+ properties = service.GetProperties()
+# if "Name" in properties.keys() and servicename!=None:
+# if servicename != properties["Name"]:
+# continue
+ if servicename!=None:
+ if "Name" not in properties.keys():
+ continue
+ if servicename != properties["Name"]:
+ continue
+ else:
+ if self.type != properties["Type"]:
+ continue
+ svc = Service(service)
+ print 'Service %s found' % path
+ return svc
+
+ print 'Service not found'
+ return None
+
+ def GetTechnology(self):
+ return self.tech
+
+ def GetInterface(self):
+ if self.intf:
+ return self.intf
+ svc = self.GetService()
+ props1 = svc.GetProperties()
+ props = props1['Ethernet']
+ print props
+ key = 'Interface'
+ if key in props.keys():
+ self.intf = props['Interface']
+ print 'There is the key Interface'
+ return self.intf
+ return None
+
+ def ifconfigUP(self):
+ intf = self.GetInterface()
+ if intf == None:
+ print 'The device interface name is empty, cannot ifconfig'
+ return False
+ cmd = 'ifconfig ' + intf + ' up'
+ ret = commands.getstatusoutput(cmd)
+ print '%s returns %s' % (cmd, ret[0])
+ if ret[0] != 0:
+ return False
+ return True
+
+ def ifconfigDown(self):
+ intf = self.GetInterface()
+ if intf == None:
+ print 'The device interface name is empty, cannot ifconfig'
+ return False
+ cmd = 'ifconfig ' + intf + ' down'
+ ret = commands.getstatusoutput(cmd)
+ print '%s return %s' % (cmd, ret[0])
+ if ret[0] != 0:
+ return False
+ return True
+
+ def PoweredOff(self):
+ '''Powered off device'''
+ props = self.GetProperties()
+ type = props['Type']
+ print "Disable %s" % type
+ manager.DisableTechnology(type)
+ time.sleep(1)
+
+ def Disable(self):
+ self.PoweredOff()
+
+ def PoweredOn(self):
+ '''Powered on device'''
+
+ props = self.GetProperties()
+ type = props['Type']
+ print "Enable %s" % type
+ manager.EnableTechnology(type)
+ time.sleep(1)
+
+ def Enable(self):
+ self.PoweredOn()
+
+ def IsPoweredOff(self):
+ properties = self.tech.GetProperties()
+ print 'Device Powered state is %s' % properties['Powered']
+ return properties['Powered'] == False
+
+ def IsDisabled(self):
+ return self.IsPoweredOff()
+
+ def IsExist(self):
+ return self.tech != None
+
+ def IsPoweredOn(self):
+ properties = self.tech.GetProperties()
+ print 'Device Powered state is %s' % properties['Powered']
+ return properties['Powered']
+
+ def IsEnabled(self):
+ return self.IsPoweredOn()
+
+ def HasIP(self):
+ service = self.GetService()
+ return service != None and service.HasIP()
+
+ def IsConnected(self):
+ if cmd_exists("/bin/ping") == False:
+ return self.HasIP()
+ service = self.GetService()
+ return service != None and service.BroadcastPing()
+
+ def IsSCPWork(self):
+ print 'scp to server'
+ ret = commands.getstatusoutput(cm_scp_download)
+ if ret[0] != 0:
+ print 'scp failed'
+ return False
+ print 'scp success'
+ print 'scp from server'
+ ret = commands.getstatusoutput(cm_scp_upload)
+ if ret[0] != 0:
+ print 'scp failed'
+ return False
+ print 'scp success'
+ commands.getstatusoutput(cm_ssh_rm)
+ commands.getstatusoutput(cm_rm)
+ return True
+
+ def IsReEnableWorks(self):
+ if self.IsEnabled():
+ self.Disable()
+ self.Enable()
+ return self.IsEnabled()
+
+ def Upload(self, cmd):
+ print "Uploading file with %s" % (cmd)
+ ret = commands.getstatusoutput(cmd)
+ if ret[0] == 0:
+ print "Upload success!"
+ else:
+ print "Upload failed!"
+ print ret
+ return ret[0] == 0
+
+ def Download(self, cmd):
+ print "Downloading file with %s" % (cmd)
+ ret = commands.getstatusoutput(cmd)
+ if ret[0] == 0:
+ print "Download success!"
+ else:
+ print "Download failed!"
+ print ret
+ return ret[0] == 0
+
+ def Connect(self):
+ self.GetService().Connect()
+
+ def Disconnect(self):
+ self.GetService().Disconnect()
+
+class EthDevice(Device):
+
+ def __init__(self):
+ Device.__init__(self, 'Wired', 1)
+ svc = self.GetService()
+ if svc == None:
+ return
+ svc.Connect()
+
+ def Upload(self):
+ return (Device.Upload(self, cm_eth_upload))
+
+ def Download(self):
+ return (Device.Download(self, cm_eth_download))
+
+
+class WiFiDevice(Device):
+
+ def __init__(self):
+ Device.__init__(self, 'WiFi', 1)
+ self.ssid = cm_open_ap_essid
+
+ def GetService(self):
+ service = Device.GetService(self, self.ssid)
+ if service == None:
+ return service
+ properties = service.GetProperties()
+ if properties['Name']:
+ print 'WiFi essid is %s' % properties['Name']
+ else:
+ print 'There is no essid'
+ return service
+
+ def Connect(
+ self,
+ ssid,
+ passphrase='',
+ security='none',
+ ):
+ self.ssid = ssid
+ service = self.GetService()
+ if service:
+ properties = service.GetProperties()
+ if ssid == properties['Name']:
+ if properties['State'] in ['ready', 'online', 'login']:
+ print 'The service is already in state %s' \
+ % properties['State']
+ return True
+# device_path = manager.ConnectService(ssid)
+ time.sleep(10)
+ #service = Device.GetService(self, ssid)
+ service = self.GetService()
+ if service == None:
+ services = self.manager.GetServices()
+ for path, props in services:
+ service_ = dbus.Interface(self.manager.bus.get_object('net.connman'
+ , path), 'net.connman.Service')
+ print service_
+ properties_ = service_.GetProperties()
+
+ if properties_["Favorite"] == True and properties_["Type"] == 'wifi':
+ print "remove favoirte service: %s" % service_
+ service_.Remove()
+
+ scan_times = 0
+ while scan_times < 3 and service == None:
+ time.sleep(60)
+ self.manager.RequestScan('wifi')
+ time.sleep(10)
+ service = self.GetService()
+ scan_times += 1
+
+ properties = service.GetProperties()
+ if properties['State'] in ['ready', 'online', 'login']:
+ print 'state is %s' % properties['State']
+ return True
+ service.Connect()
+
+ count = 0
+ while count < 10:
+ properties = service.GetProperties()
+ if properties['State'] in ['ready', 'online', 'login']:
+ print 'state is %s' % properties['State']
+ return True
+ count = count + 1
+ time.sleep(5)
+ print 'Current state is not ready'
+ return False
+
+ def Disconnect(self):
+ service = self.GetService()
+ service.Disconnect()
+
+ def Upload(self):
+ return (Device.Upload(self, cm_wifi_upload))
+
+ def Download(self):
+ return (Device.Download(self, cm_wifi_download))
+
+
+class C3GDevice(Device):
+
+ def __init__(self):
+ Device.__init__(self, '3G', 1)
+
+ def GetService(self):
+ props = manager.GetProperties()
+ for path in props['Services']:
+ service = \
+ dbus.Interface(manager.bus.get_object('net.connman'
+ , path), 'net.connman.Service')
+
+ properties = service.GetProperties()
+ for key in properties.keys():
+ if key == 'Mode' and properties['Mode'] == 'gprs':
+ svc = Service(service)
+ return svc
+ return None
+
+ def Connect(self):
+ service = Device.GetService(self)
+ if service == None:
+ return False
+ service.Connect()
+ count = 0
+ while count < 10:
+ properties = service.GetProperties()
+ if properties['State'] == 'online':
+ print 'state is %s' % properties['State']
+ return True
+ count = count + 1
+ time.sleep(5)
+ return False
+
+ def BroadcastPing(self, size=0):
+ service = self.GetService()
+ if service == None:
+ return True
+ loop = 0
+ while loop < 5:
+ state = service.GetProperty('state')
+ if state == 'online':
+ break
+ time.sleep(10)
+ loop = loop + 1
+ return service.Ping()
+
+ def IsConnected(self):
+ if cmd_exists("/bin/ping") == False:
+ return self.HasIP()
+ return self.BroadcastPing()
+
+ def Upload(self):
+ return (Device.Upload(self, cm_3g_upload))
+
+ def Download(self):
+ return (Device.Download(self, cm_3g_download))
+
+
+class BTDevice(Device):
+
+ def __init__(self):
+ Device.__init__(self, 'Bluetooth', 1)
+
+ def Connect(self):
+ service = Device.GetService(self)
+ service.Connect()
+
+ def Upload(self):
+ return (Device.Upload(self, cm_bt_upload))
+
+ def Download(self):
+ return (Device.Download(self, cm_bt_download))
+
+class WiFiGuestDevice(WiFiDevice):
+
+ def __init__(self, ssid=cm_open_ap_essid):
+ WiFiDevice.__init__(self)
+ service = Device.GetService(self, self.ssid)
+ print 'Now connect...'
+ self.Enable()
+# service.Connect()
+ WiFiDevice.Connect(self, cm_open_ap_essid)
+
+class WiFiSecDevice(WiFiDevice):
+ def __init__(self, essid, key):
+ WiFiDevice.__init__(self)
+ self.Enable()
+ self.ssid = essid
+ self.service = Device.GetService(self, self.ssid)
+ self.service.SetProperty("Passphrase", key)
+
+ def GetService(self):
+ return self.service
+
+ def Connect(self):
+ service = self.GetService()
+ service.Connect()
+
+ def Disconnect(self):
+ service = self.GetService()
+ service.Disconnect()
+
+try:
+ #change the time out from 180 to 360
+ t = Timer(300, common_timeout)
+ t.daemon = True
+ t.start()
+except:
+ print "oops"
+manager = Manager()
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: common code to check the value of a property
+#
+
+# The control server that connects to AP, so that test script can
+# set AP parameters through apset script
+cm_apset_server = "192.168.x.x"
+
+# The full path of the apset script in control server
+cm_apset_server_path= "/usr/local/bin/apset/cisco/apset"
+
+cm_apset_ap_essid = "test-apset-ap"
+
+# The essid of AP, this must be same as in apset script
+cm_open_ap_essid = 'test-ivi-open-ap'
+cm_wep_ap = {"name" : "test-ivi-wep-ap", "password" : "1234567890"}
+cm_wpa2_ap = {"name" : "test-ivi-wpa2-ap", "password" : "12345678"}
+cm_isolate_ap = {"name" : "test-ivi-isolate-ap", "password" : "12345678"}
+cm_available_ap = {"name" : "test-ivi-avalible-ap", "password" : "12345678"}
+
+
+# For data transfer testing, we need a peer machine for upload/download
+# Since different test environment has different upload/download method
+# this test suite just defines configurable varibles for each technology
+# Tester should re-configure these varibles, otherwise the result is wrong
+# Data Server(peer machin) IP address
+cm_data_server_ip_bt='192.168.x.x'
+cm_data_server_ip_wifi='192.168.x.x'
+#cm_data_server_ip_eth='192.168.x.x'
+cm_data_server_ip_eth='192.168.x.x'
+
+#cm_bt_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp'
+#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp'
+#cm_bt_download = 'scp 127.0.0.1:/usr/share/tts-connman-tests/10M /tmp'
+#cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M 127.0.0.1:/tmp'
+cm_bt_download = 'scp ' + cm_data_server_ip_bt + ':/usr/share/tts-connman-tests/10M /tmp'
+cm_bt_upload = 'scp /usr/share/tts-connman-tests/10M ' + cm_data_server_ip_bt + ':/tmp'
+
+cm_eth_download = 'scp ' + cm_data_server_ip_eth + ':/opt/tts-connman-tests/data/apset.tgz /tmp'
+cm_eth_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_eth + ':/tmp'
+#cm_eth_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp'
+#cm_eth_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp'
+# For 3G, We will directly connect to Internet. So we can download
+# from Internet. But tester need find a way to upload to Internet so
+# that upload test case works
+# Download from Internet, ChangeLog-2.6.33 is about 7.5MB
+cm_3g_download = 'wget --no-proxy http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.33'
+# Upload to local, please revise accordingly so that to upload
+# to Internet automatically
+cm_3g_upload = 'curl -x "" --ftp-pasv -v -T /usr/share/tts-connman-tests/10M ftp://anonymous:tizen3gtest@ftp.x.x/pub/incoming/'
+
+# For WiFi, we test data transfer for WEP and PSK. These essids are only used
+# for data transfer. Test cases in test set WiFiFeature still need a cisco AP
+cm_ap_essid_wep64 = 'test-ivi-wep64-ap' # AP set to shared hidden wep64
+cm_ap_wep64_key = '1111111111'
+cm_ap_essid_psk = 'test-ivi-psk-ap' # AP set to open broadcast RSN PSK
+cm_ap_psk_key = '1111111111'
+#cm_wifi_download = 'scp 192.168.x.x:/usr/share/tts-connman-tests/10M /tmp'
+#cm_wifi_upload = 'scp /usr/share/tts-connman-tests/10M 192.168.x.x:/tmp'
+cm_wifi_download = 'scp ' + cm_data_server_ip_wifi + ':/opt/tts-connman-tests/data/apset.tgz /tmp'
+cm_wifi_upload = 'scp /opt/tts-connman-tests/data/apset.tgz ' + cm_data_server_ip_wifi + ':/tmp'
+
+# Give one IP address that in the same network with test devices and AP, using Ping command to check network is accessible
+cm_ping_server_ip = '192.168.x.x'
+
+# For testing whether scp network is workable
+cm_scp_download = 'scp test@x.x.x:1M /tmp/1M.1'
+cm_scp_upload = 'scp /tmp/1M.1 test@x.x.x:/tmp/1M.2'
+cm_ssh_rm = 'ssh test@x.x.x rm /tmp/1M.2'
+cm_rm = 'rm /tmp/1M.1'
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: offline function used in signal
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+def func():
+ time.sleep(2)
+ manager = common.manager
+ manager.Offline()
+ time.sleep(5)
+ manager.Online()
+
+def offline(Name):
+ sig = SignalConnman.sig
+ sig.property_name = Name
+
+ trigger=SignalBase.Trigger(func)
+ trigger.start()
+ trigger.join(common.TIMEOUT)
+
+ sig.mainloop.run()
+ common.EXIT(sig.my_ret)
+
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: common code to check the value of a property
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+
+import dbus
+import dbus.mainloop.glib
+
+from common import *
+
+
+def InListWiFiGuest(key, list):
+ dev = WiFiGuestDevice()
+ svc = dev.GetService()
+ properties = svc.GetProperties()
+ print properties
+ if key in properties.keys():
+ item = properties[key]
+ else:
+ print 'Property %s does not exist' % key
+ if list == ['']:
+ return True
+ return False
+ if item in list:
+ print '%s %s is valid' % (key, item)
+ return True
+ else:
+ print '%s %s is invalid' % (key, item)
+ return False
+
+
+def InList3G(key, list):
+ dev = C3GDevice()
+ svc = dev.GetService()
+ properties = svc.GetProperties()
+ if key in properties.keys():
+ item = properties[key]
+ else:
+ item = ''
+ if item in list:
+ print '%s %s is valid' % (key, item)
+ return True
+ else:
+ print '%s %s is invalid' % (key, item)
+ return False
+
+
+def InListManager(key, list):
+ properties = manager.GetProperties()
+ print properties
+ if key in properties.keys():
+ item = properties[key]
+ else:
+ print 'Property %s does not exist' % key
+ return False
+ if item in list:
+ print '%s %s is valid' % (key, item)
+ return True
+ else:
+ print '%s %s is invalid' % (key, item)
+ return False
+
+
+def InListManagerM(key, list):
+ properties = manager.GetProperties()
+ print properties
+ if key in properties.keys():
+ items = properties[key]
+ else:
+ print 'Property %s does not exist' % key
+ return False
+ print 'items is %s' % items
+ for item in items:
+ print 'item is %s' % item
+ if item in list:
+ print '%s %s is valid' % (key, item)
+ else:
+ print '%s %s is invalid' % (key, item)
+ return False
+
+ return True
+
+
+def InListTechnology(key, list):
+ for (path, properties) in manager.GetTechnologies():
+ technology = manager.GetSubObject(path, 'Technology')
+ break
+ properties = technology.GetProperties()
+ print properties
+ if key in properties.keys():
+ item = properties[key]
+ else:
+ print 'Property %s does not exist' % key
+ return False
+ if item in list:
+ print '%s %s is valid' % (key, item)
+ return True
+ else:
+ print '%s %s is invalid' % (key, item)
+ return False
+
--- /dev/null
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010 Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place - Suite 330, Boston, MA 02111-1307 USA.
+#
+# Authors:
+# Jeff Zheng <jeff.zheng@intel.com>
+#
+# Description: signal_func
+#
+
+import sys
+import os
+dir=os.path.dirname(sys.argv[0])+"/common"
+sys.path.append(dir)
+import time
+import gobject
+import dbus
+import dbus.mainloop.glib
+import SignalBase
+import SignalConnman
+import common
+
+def func1():
+ time.sleep(2)
+ dev = common.WiFiDevice()
+ dev.Disable()
+ time.sleep(5)
+ dev.Enable()
+ time.sleep(5)
+
+def Dis_enable(name):
+ sig = SignalConnman.sig
+ sig.property_name = name
+ trigger=SignalBase.Trigger(func1)
+ trigger.start()
+ trigger.join(common.TIMEOUT)
+ sig.mainloop.run()
+ common.EXIT(sig.my_ret)
+
+def func2():
+ time.sleep(2)
+ dev = common.WiFiDevice()
+ dev.device.SetProperty(set_name, dbus.UInt16(value))
+
+def Check_By_Set_Prop(name, set_name, value):
+ sig = SignalConnman.sig
+ sig.property_name = name
+ trigger=SignalBase.Trigger(func2)
+ trigger.start()
+ trigger.join(common.TIMEOUT)
+ sig.mainloop.run()
+ common.EXIT(sig.my_ret)
+
+
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<suite name='tts-connman-tests-upstream'>
+ <set name='Launch'>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_Boot' priority='P2' purpose='After system booted the connmand daemon should be launched' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. boot system
+2. 'ps aux|grep connmand'
+3. check if there is a thread named connmand in background</step_desc>
+ <expected>There should be one thread named connmand in background</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_Boot.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Ethernet' priority='P2' purpose='Check ethernet technology state at the first launch. The State value is different for different platform. Basically it's 'offline' for mobile device like handset and 'enabled' for other like netbook and IVI' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager</step_desc>
+ <expected>In Technologies section, check ethernet State according to followin table
+platform ethernet State
+Upstream offline
+Netbook enabled
+IVI enabled
+TV enabled
+handset offline</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Ethernet.py</test_script_entry></description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Offlinemode' priority='P2' purpose='Check if offlinemode is off at the first launch' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager</step_desc>
+ <expected>OfflineMode is 'false'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Offlinemode.py</test_script_entry></description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_OneConnmand' priority='P2' purpose='there should be no more than one connmand in background' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. boot system
+2. 'ps aux|grep connmand'
+3. the connmand should be in background
+4. command 'su -'
+5. command 'connmand'
+6. check if the second connmand can be generated
+7. ps -ef |grep -i connman</step_desc>
+ <expected>Step 7 shows there is only one connmand running.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_OneConnmand.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_BT' priority='P2' purpose='After system booted the bluetoothd daemon should be launched' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. boot system
+2. 'ps aux|grep bluetoothd'
+3. check if there is a thread named bluetoothd in background</step_desc>
+ <expected>There should be one thread named bluetoothd in background</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_BT.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_Bluetooth' priority='P2' purpose='Check bluetooth technology state at the first launch. The State value is different for different platform. Basically it's 'offline'.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager</step_desc>
+ <expected>In Technologies section, check bluetooth State according to followin table
+platform bluetooth State
+Upstream offline
+Netbook offline
+IVI offline
+TV offline
+handset offline</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_Bluetooth.py</test_script_entry></description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_State_WiFi' priority='P2' purpose='Check WiFi technology state at the first launch. The State value is different for different platform. Basically it's 'offline' for mobile device like handset and 'enabled' for other like netbook and IVI' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition>Must be first time to launch connman, that is:
+rm -f /var/lib/connman/*
+install connman rpm
+reboot</pre_condition>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager</step_desc>
+ <expected>In Technologies section, check WiFi State according to followin table
+platform WiFi State
+Upstream offline
+Netbook enabled
+IVI enabled
+TV enabled
+handset offline</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_State_WiFi.py</test_script_entry></description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Launch' execution_type='auto' id='CM_Launch_WpaSupplicant' priority='P2' purpose='After system booted the wpa_supplicant daemon should be launched' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. boot system
+2. 'ps aux|grep wpa_supplicant'
+3. check if there is a thread named wpa_supplicant in background</step_desc>
+ <expected>There should be one thread named wpa_supplicant in background</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Launch_WpaSupplicant.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='BT'>
+ <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_IsReEnableWorks' priority='P2' purpose='Check if BT device still works after powered off and powered on' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-connman list
+2. Check if there is BT service
+3. test-connman disable bluetooth
+4. 'test-connman list' shows there is no BT service
+5. test-connman enable bluetooth
+6. 'test-connman list' shows there is the BT service
+7. test-connman connect <bt service>
+8. ping PANU server</step_desc>
+ <expected>Can ping PANU server</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsReEnableWorks.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_IsPoweredOn' priority='P2' purpose='Check if BT device is on by default' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Run 'test-manager'
+2. In section Technologies of the output Check the powered 'State' of bluetooth is 'true'</step_desc>
+ <expected>The powered 'State' of bluetooth is 'true'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_IsPoweredOn.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_PoweredOn' priority='P2' purpose='Check if Powered on works for BT' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-connman disable bluetooth and check if powered state is 'false' by 'test-manager'
+2. test-connman enable bluetooth
+3. Check if powered state is 'true' by 'test-manager'</step_desc>
+ <expected>The value is 'true'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOn.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_PoweredOff' priority='P2' purpose='Check if we can disable BT technology' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager shows the powered state of bluetooth is 'true'
+2. test-connman disable bluetooth
+3. test-manager shows the powered state of bluetooth is 'false'</step_desc>
+ <expected>The value is 'false'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_PoweredOff.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/BT' execution_type='auto' id='CM_BT_DeviceIsExist' priority='P0' purpose='Check if BT device exists' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-manager
+2. There is a bluetooth technology</step_desc>
+ <expected>There is bluetooth technology</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_BT_DeviceIsExist.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='WiFiFeature'>
+ <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WS_Open' priority='P1' purpose='Test WiFi for Open mode' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set AP in Open mode
+2. Connect to the AP</step_desc>
+ <expected>Can get IP and ping the AP</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_Open.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WS_WPA' priority='P1' purpose='Test WiFi for WPA TKIP mode' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set AP in WPA TKIP mode
+2. Connect to the AP</step_desc>
+ <expected>Can get IP and ping the AP</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WS_WPA.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WA_RememberPasswd' priority='P1' purpose='Check if ConnMan remember previous password' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Connect to AP with password
+2. Disconnect to the AP
+3. Connect to the same AP without password
+4. ConnMan should remember the password and can connect to the AP</step_desc>
+ <expected>ConnMan should remember the password and can connect to the AP</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_RememberPasswd.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFiFeature' execution_type='auto' id='CM_WA_ForgotPassword' priority='P1' purpose='Check if can get error when the connection with password failed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Connect to AP with wrong password
+2. The error property of the service will show error reason.
+# According to developer ConnMan just report error in error property but the passphrase will not be empty</step_desc>
+ <expected>Error property is set.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WA_ForgotPassword.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='Property'>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Nameservers' priority='P2' purpose='Test if Nameservers in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Nameservers is not empty</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Nameservers.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Type' priority='P2' purpose='Test if Type in Technology interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Type of the Technology is in ['ethernet', 'wifi', 'wimax', 'bluetooth', 'cellular']</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Type.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Powered' priority='P2' purpose='Test if Powered in Technology interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Powered is in [True, False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Powered.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Strength' priority='P2' purpose='Test if Strength in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Strength is 0-100</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Strength.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_SessionMode' priority='P1' purpose='Test if SessionMode property in Manager interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Manager interface
+2. Check if SessionMode property is in [True False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_SessionMode.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Security' priority='P2' purpose='Test if Security in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Security is in ['none' 'wep' 'psk' 'ieee8021x' 'wpa' 'rsn']</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Security.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_OfflineMode' priority='P1' purpose='Test if OfflineMode property in Manager interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Manager interface
+2. Check if OfflineMode property is in [True False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_OfflineMode.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PM_State' priority='P0' purpose='Test if State property in Manager interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Manager interface
+2. Check if State property is in ['online' 'offline' 'connected']</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PM_State.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Connected' priority='P2' purpose='Test if Connected in Technology interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Connected is in [True, False]</step_desc>
+ <expected>As expected</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Connected.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_AutoConnect' priority='P2' purpose='Test if AutoConnect in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if AutoConnect is in [True False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_AutoConnect.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Name' priority='P2' purpose='Test if Name in Technology interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Name is in ['Wired', 'WiFi', 'WiMAX', 'Bluetooth', 'Cellular']</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Name.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_State' priority='P2' purpose='Test if State in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if State is in ['ready' 'idle' 'failure' 'association' 'configuration' 'login' 'online']</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_State.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PT_Tethering' priority='P2' purpose='Test if Tethering in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Tethering is in [True, False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PT_Tethering.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Type' priority='P2' purpose='Test if Type in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Type of the service is 'WiFi'</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Type.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Domains' priority='P2' purpose='Test if Domains in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Domains is not empty</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Domains.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Error' priority='P2' purpose='Test if Error in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Error is not in properties since Guest connect always success</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Error.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Name' priority='P2' purpose='Test if Name in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Name is 'Guest'</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Name.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Favorite' priority='P2' purpose='Test if Favorite in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Favorite is in [True False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Favorite.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Property' execution_type='auto' id='CM_PS_Immutable' priority='P2' purpose='Test if Immutable in Service interface is valid.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get Guest service
+2. Check if Immutable is in [True False]</step_desc>
+ <expected>:</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_PS_Immutable.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='Ethernet'>
+ <testcase component='Networking/Connman/Ethernet' execution_type='auto' id='CM_Eth_DeviceIsExist' priority='P0' purpose='Check if ethernet device exists' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get the technology list from connman
+2. Get the ethernet technology
+3. Get the device from ethernet technology
+4. Check if the device is null</step_desc>
+ <expected>There is ethernet device</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_Eth_DeviceIsExist.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='WiFi'>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_Disconnect' priority='P2' purpose='Check if we can disconnet Guest WiFi network' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Make sure there is Guest WiFi network
+2. Powered off the device
+3. Check if we can ping Guest WiFi network</step_desc>
+ <expected>Ping cannot receive any response.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_Disconnect.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_SmallBroadcastPing' priority='P2' purpose='Check if can broadcast with small packet for WiFi device' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. connect-service Guest
+2. Get Guest WiFi IP address (ifconfig or list-service)
+3. ping -c 5 -s 64 <AP address></step_desc>
+ <expected>Receives ping response.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_SmallBroadcastPing.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_PoweredOff' priority='P2' purpose='Check if Powered off works for WiFi device' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>"Run Instructions
+1. test-manager shows the powered state of wifi is 'true'
+2. test-connman disable wifi
+3. test-manager shows the powered state of wifi is 'false'
+Pass/Fail Criteria: The value is 'false'</step_desc>
+ <expected>The value is 'false'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOff.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_IsReEnableWorks' priority='P2' purpose='Check if WiFi device still works after powered off and powered on' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-connman list
+2. Check if there is Guest wifi service
+3. test-connman disable wifi
+4. 'test-connman list' shows there is no wifi service
+5. test-connman enable wifi
+6. 'test-connman list' shows there is the wifi Guest service
+7. connect-service Guest
+8. ping a machine in Guest network</step_desc>
+ <expected>ping response</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsReEnableWorks.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_IsPoweredOn' priority='P2' purpose='Check if WiFi device is on by default' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get the Powered status of WiFi device
+2. Check the Powered status is On</step_desc>
+ <expected>The Powered status is on</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_IsPoweredOn.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_PoweredOn' priority='P2' purpose='Check if Powered on works for WiFi device' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. test-connman disable wifi and check if powered state is 'false' by 'test-manager'
+2. test-connman enable wifi
+3. Check if powerd state is 'true' by 'test-manager'</step_desc>
+ <expected>The value is 'true'</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_PoweredOn.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_BigBroadcastPing' priority='P1' purpose='Check if we can ping Guest WiFi nework through broadcast' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. connect-service Guest
+2. Get Guest WiFi IP address (ifconfig or list-service)
+3. ping -c 5 -s 1400 <AP address></step_desc>
+ <expected>Ping will receive response.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_BigBroadcastPing.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/WiFi' execution_type='auto' id='CM_WG_DeviceIsExist' priority='P0' purpose='Check if WiFi device exists' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Get the technology list from connman
+2. Get the WiFi technology
+3. Get the device from WiFi technology
+4. Check if the device is null</step_desc>
+ <expected>There is WiFi device</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_WG_DeviceIsExist.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='State'>
+ <testcase component='Networking/Connman/State' execution_type='auto' id='CM_State_WIFI_AvialableAP' priority='P2' purpose='WIFI service should be 'online' when connect to an WIFI AP that can surf internet.' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Prepare an wifi AP that can be connected and can surf internet by this AP
+2. Only connect to this WIFI AP and make sure that it can surf internet by this service
+3. Check the connection state for this AP service</step_desc>
+ <expected>The state should be 'online' for this connected WIFI AP.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_State_WIFI_AvialableAP.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+ <set name='Signal'>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_IPv4' priority='P2' purpose='Check if signal is triggered through Service interface when IPv4 property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Powered off/on WiFi device
+2.2 Connect to Guest WiFi network
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_IPv4.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_Favorite' priority='P2' purpose='Check if Service signal is triggered when Favorite property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Connect to Guest WiFi network service
+2.2 Remove the serivce
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_Favorite.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_IPv4' priority='P2' purpose='Check if signal is triggered when IPv4property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set connman to offline mode
+2.2 sleep 5 seconds and set connman to online mode
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_IPv4.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_Favorite' priority='P2' purpose='Check if signal is triggered when Favorite property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set connman to offline mode
+2.2 sleep 5 seconds and set connman to online mode
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Favorite.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SS_AutoConnect' priority='P2' purpose='Check if signal is triggered when AutoConnect property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set Service.AutoConnect to off
+2.2 Set Service.AutoConnect to on
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SS_AutoConnect.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_State' priority='P2' purpose='Check if signal is triggered when State property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Powered off the device
+2.2 sleep 5 seconds and Powered on the device
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_State.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_Connected' priority='P2' purpose='Check if signal is triggered when ConnectedTechnologies property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set connman to offline mode
+2.2 sleep 5 seconds and set connman to online mode
+3. Check if the property_changed called</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_Connected.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SC_OfflineMode' priority='P2' purpose='Check if signal is triggered when OfflineMode property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set connman to offline mode
+2.2 sleep 5 seconds and set connman to online mode
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SC_OfflineMode.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ <testcase component='Networking/Connman/Signal' execution_type='auto' id='CM_SM_State' priority='P2' purpose='Check if Manager signal is triggered through Manager interface when State property changed' status='approved' type='functional_positive'>
+ <description>
+ <pre_condition/>
+ <post_condition/>
+ <steps>
+ <step order='1'>
+ <step_desc>1. Set property_changed call back
+2. Using following way to make the property changed
+2.1 Set offline mode
+2.2 sleep 5 seconds and set to online mode
+3. Check if the property_changed called.</step_desc>
+ <expected>The callback function is called.</expected>
+ </step>
+ </steps>
+ <test_script_entry test_script_expected_result='0' timeout='360'>/usr/share/tests/common-connectivity-suite/tts-connman-tests/CM_SM_State.py</test_script_entry>
+ </description>
+ <categories>
+ <category>Mobile</category>
+ <category>Netbook</category>
+ <category>IVI</category>
+ <category>TV</category>
+ </categories>
+ </testcase>
+ </set>
+</suite>
--- /dev/null
+%define _unpackaged_files_terminate_build 0
+
+Name: common-connectivity-suite
+Summary: common-connectivity-suite
+Version: 0.1.0
+Release: 1
+License: GPLv2
+Group: Development/Testing
+Source0: %{name}-%{version}.tar.gz
+
+
+%description
+This package is IVI common connectivity test suite
+
+%package -n tts-bluez-tests
+Summary: Bluez test suit
+Group: Development/Testing
+
+%description -n tts-bluez-tests
+%{summary}.
+
+
+%package -n tts-connman-tests
+Summary: Connman test suit
+Group: Development/Testing
+
+%description -n tts-connman-tests
+%{summary}.
+
+%prep
+%setup -q
+
+%build
+
+%install
+
+install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests
+install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data
+install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server
+
+install -m 0755 ivi/tts-bluez-tests/src/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests
+install -m 0755 ivi/tts-bluez-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests
+install -m 0755 ivi/tts-bluez-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests
+install -m 0755 ivi/tts-bluez-tests/data/client/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data
+cp -fr ivi/tts-bluez-tests/data/server/* %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests/data/server
+install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-bluez-tests
+
+
+install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+
+install -m 0755 ivi/tts-connman-tests/src/3G/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/BM/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/BT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/common/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Ethernet/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Flight/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Launch/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/MBT/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Profile/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Property/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Signal/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/State/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/Stress/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+install -m 0755 ivi/tts-connman-tests/src/WiFi/* %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/
+
+install -d %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data
+install -m 0755 ivi/tts-connman-tests/data/apset.tgz %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests/data
+
+install -m 0755 ivi/tts-connman-tests/network.jpg %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+
+install -m 0755 ivi/tts-connman-tests/bisect.sh %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+install -m 0755 ivi/tts-connman-tests/tests.xml %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+install -m 0755 ivi/tts-connman-tests/README %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+install LICENSE %{buildroot}/%{_datadir}/tests/%{name}/tts-connman-tests
+
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files -n tts-bluez-tests
+%defattr(-,root,root)
+%{_datadir}/tests/%{name}/tts-bluez-tests
+%license LICENSE
+
+%files -n tts-connman-tests
+%defattr(-,root,root)
+%{_datadir}/tests/%{name}/tts-connman-tests
+%license LICENSE
+
+%changelog
+* Fri May 23 2014 Wu dawei<daweix.wu@intel.com> 0.1.0-1
+ - Initial common connectivity suite test
+