diff --git a/tools/harness-automation/autothreadharness/harness_case.py b/tools/harness-automation/autothreadharness/harness_case.py index d0c97454e..0ed493c1b 100644 --- a/tools/harness-automation/autothreadharness/harness_case.py +++ b/tools/harness-automation/autothreadharness/harness_case.py @@ -57,7 +57,7 @@ THREAD_CHANNEL_MIN = 11 class HarnessCase(unittest.TestCase): """This is the case class of all automation test cases. - All test case classes MUST define properties `suite`, `case` and `golden_devices_required` + All test case classes MUST define properties `role`, `case` and `golden_devices_required` """ channel = settings.THREAD_CHANNEL @@ -65,8 +65,20 @@ class HarnessCase(unittest.TestCase): Thread channel ranges from 11 to 26. """ - suite = None - """int: Suite id. + + ROLE_LEADER = 1 + ROLE_ROUTER = 2 + ROLE_SED = 4 + ROLE_BORDER = 8 + ROLE_REED = 16 + ROLE_ED = 32 + ROLE_COMMISSIONER = 64 + ROLE_JOINER = 128 + ROLE_FED = 512 + ROLE_MED = 1024 + + role = None + """int: role id. 1 Leader @@ -78,7 +90,14 @@ class HarnessCase(unittest.TestCase): Router eligible end device 32 End device - + 64 + Commissioner + 128 + Joiner + 512 + Full end device + 1024 + Minimal end device """ case = None @@ -111,6 +130,7 @@ class HarnessCase(unittest.TestCase): """ while times: + logger.info('Waiting times left %d', times) try: if what() is True: return True @@ -463,12 +483,12 @@ class HarnessCase(unittest.TestCase): else: break - def _select_case(self, suite, case): + def _select_case(self, role, case): """Select the test case. """ # select the case elem = Select(self._browser.find_element_by_id('select-dut')) - elem.select_by_value(str(suite)) + elem.select_by_value(str(role)) time.sleep(1) checkbox = None @@ -718,7 +738,7 @@ class HarnessCase(unittest.TestCase): logger.warning('Skip this harness itself') return - logger.info('Testing suite[%d] case[%s]', self.suite, self.case) + logger.info('Testing role[%d] case[%s]', self.role, self.case) try: self._init_browser() # prepare test case @@ -736,7 +756,7 @@ class HarnessCase(unittest.TestCase): logger.exception('Failed to connect to harness server') raise SystemExit() - self._select_case(self.suite, self.case) + self._select_case(self.role, self.case) self._wait_dialog() diff --git a/tools/harness-automation/autothreadharness/harness_controller.py b/tools/harness-automation/autothreadharness/harness_controller.py index 973e99fe8..8fed929d2 100644 --- a/tools/harness-automation/autothreadharness/harness_controller.py +++ b/tools/harness-automation/autothreadharness/harness_controller.py @@ -58,20 +58,23 @@ class HarnessController(object): else: env = dict(os.environ, PYTHONPATH='%s\\Thread_Harness;%s\\ThirdParty\\hsdk-python\\src' % (settings.HARNESS_HOME, settings.HARNESS_HOME)) - with open('%s\\harness-%s.log' % (self.result_dir, time.strftime('%Y%m%d%H%M%S')), 'w') as fout: + with open('%s\\harness-%s.log' % (self.result_dir, time.strftime('%Y%m%d%H%M%S')), 'w') as harnessOut: self.harness = subprocess.Popen([settings.HARNESS_HOME + '\\Python27\\python.exe', settings.HARNESS_HOME + '\\Thread_Harness\\Run.py'], cwd=settings.HARNESS_HOME, - stdout=fout, - stderr=fout, + stdout=harnessOut, + stderr=harnessOut, env=env) time.sleep(2) if self.miniweb: logger.warning('Miniweb already started') else: - self.miniweb = subprocess.Popen([settings.HARNESS_HOME + '\\miniweb\\miniweb.exe'], - cwd=settings.HARNESS_HOME + '\\miniweb') + with open('%s\\miniweb-%s.log' % (self.result_dir, time.strftime('%Y%m%d%H%M%S')), 'w') as miniwebOut: + self.miniweb = subprocess.Popen([settings.HARNESS_HOME + '\\miniweb\\miniweb.exe'], + stdout=miniwebOut, + stderr=miniwebOut, + cwd=settings.HARNESS_HOME + '\\miniweb') def stop(self): logger.info('Stopping harness service') diff --git a/tools/harness-automation/autothreadharness/open_thread_controller.py b/tools/harness-automation/autothreadharness/open_thread_controller.py index d1d39dcba..7828ea3d2 100644 --- a/tools/harness-automation/autothreadharness/open_thread_controller.py +++ b/tools/harness-automation/autothreadharness/open_thread_controller.py @@ -29,50 +29,53 @@ import logging -import time -import threading +import re import serial +import socket +import threading +import time -from pexpect_serial import SerialSpawn +from . import settings __all__ = ['OpenThreadController'] logger = logging.getLogger(__name__) -class OpenThreadController(object): +linesepx = re.compile(r'\r\n|\n') + +class OpenThreadController(threading.Thread): """This is an simple wrapper to communicate with openthread""" + _lock = threading.Lock() + viewing = False + def __init__(self, port, log=False): """Initialize the controller Args: port (str): serial port's path or name(windows) """ + super(OpenThreadController, self).__init__() self.port = port + self.handle = None self._log = log - self._ss = None - self._lv = None + self._is_net = False self._init() def _init(self): - ser = serial.Serial(self.port, 115200, timeout=2, xonxoff=True) - self._ss = SerialSpawn(ser, timeout=2) + self._connect() if not self._log: return - if self._lv: - self._lv.stop() - self._lv = OpenThreadLogViewer(ss=self._ss) - self._lv.start() + self.start() def __del__(self): self.close() def close(self): - if self._lv and self._lv.is_alive(): - self._lv.viewing = False - self._lv.join() + if self.is_alive(): + self.viewing = False + self.join() - if self._ss: - self._ss.close() + self._close() def __enter__(self): return self @@ -80,6 +83,162 @@ class OpenThreadController(object): def __exit__(self, type, value, traceback): self.close() + def _close(self): + if self.handle: + self.handle.close() + self.handle = None + + def _connect(self): + logger.debug('My port is %s' % self.port) + if self.port.startswith('NET'): + portnum = settings.SER2NET_PORTBASE + int(self.port.split('NET')[1]) + logger.debug('My port num is %d' % portnum) + address = (settings.SER2NET_HOSTNAME, portnum) + self.handle = socket.create_connection(address) + self.handle.setblocking(0) + self._is_net = True + elif ':' in self.port: + host, port = self.port.split(':') + self.handle = socket.create_connection((host, port)) + self.handle.setblocking(0) + self._is_net = True + else: + self.handle = serial.Serial(self.port, 115200, timeout=0, xonxoff=True) + self._is_net = False + + def _read(self, size=512): + if self._is_net: + return self.handle.recv(size) + else: + return self.handle.read(size) + + def _write(self, data): + if self._is_net: + self.handle.sendall(data) + else: + self.handle.write(data) + + def _expect(self, expected, times=10): + """Find the `expected` line within `times` trials. + + Args: + expected str: the expected string + times int: number of trials + """ + logger.debug('[%s] Expecting [%s]' % (self.port, expected)) + + for i in range(0, times): + line = self._readline() + logger.debug('[%s] Got line [%s]' % (self.port, line)) + + if line == expected: + logger.debug('[%s] Expected [%s]' % (self.port, expected)) + return + + if not line: + time.sleep(1) + + raise Exception('failed to find expected string[%s]' % expected) + + def _readline(self): + """Read exactly one line from the device, nonblocking. + + Returns: + None on no data + """ + if len(self.lines) > 1: + return self.lines.pop(0) + + tail = '' + if len(self.lines): + tail = self.lines.pop() + + try: + tail += self._read() + except socket.error: + logging.exception('No new data') + time.sleep(0.1) + + self.lines += linesepx.split(tail) + if len(self.lines) > 1: + return self.lines.pop(0) + + def _sendline(self, line): + """Send exactly one line to the device + + Args: + line str: data send to device + """ + self.lines = [] + try: + self._read() + except socket.error: + logging.debug('Nothing cleared') + + logger.debug('sending [%s]' % line) + self._write(line + '\r\n') + + # wait for write to complete + time.sleep(0.1) + + def _req(self, req): + """Send command and wait for response. + + The command will be repeated 3 times at most in case data loss of serial port. + + Args: + req (str): Command to send, please do not include new line in the end. + + Returns: + [str]: The output lines + """ + logger.debug('DUT> %s', req) + self._log and self.pause() + times = 3 + res = None + + while times: + times = times - 1 + try: + self._sendline(req) + self._expect(req) + + line = None + res = [] + + while True: + line = self._readline() + logger.debug(line) + + if line == 'Done': + break + + if line: + res.append(line) + break + + except: + logger.exception('Failed to send command') + self.close() + self._init() + + self._log and self.resume() + return res + + def run(self): + """Threading callback""" + + self.viewing = True + while self.viewing and self._lock.acquire(): + try: + line = self._readline() + except: + pass + else: + logger.info(line) + self._lock.release() + time.sleep(0) + def is_started(self): """check if openthread is started @@ -104,55 +263,20 @@ class OpenThreadController(object): def reset(self): """Reset openthread device, not equivalent to stop and start """ - logger.info('DUT> reset') - self._log and self._lv.pause() - self._ss.sendline('reset') - self._log and self._lv.resume() + logger.debug('DUT> reset') + self._log and self.pause() + self._sendline('reset') + self._read() + self._log and self.resume() - def _req(self, req): - """Send command and wait for response. - The command will be repeated 3 times at most in case data loss of serial port. - - Args: - req (str): Command to send, please do not include new line in the end. - - Returns: - [str]: The output lines - """ - logger.info('DUT> %s', req) - self._log and self._lv.pause() - times = 3 - res = None - - while times: - times = times - 1 - try: - self._ss.sendline(req) - self._ss.expect(req + self._ss.linesep) - - line = None - res = [] - - while True: - line = self._ss.readline().strip('\0\r\n\t ') - logger.debug(line) - - if line == 'Done': - break - - if line: - res.append(line) - break - - except: - logger.exception('Failed to send command') - self.close() - self._init() - - self._log and self._lv.resume() - return res + def resume(self): + """Start dumping logs""" + self._lock.release() + def pause(self): + """Start dumping logs""" + self._lock.acquire() @property def networkname(self): """str: Thread network name.""" @@ -253,31 +377,3 @@ class OpenThreadController(object): def add_blacklist(self, mac): """Add a mac address to blacklist""" self._req('blacklist add %s' % mac) - - -class OpenThreadLogViewer(threading.Thread): - _lock = threading.Lock() - viewing = False - def __init__(self, *args, **kwargs): - self._ss = kwargs.pop('ss') - super(OpenThreadLogViewer, self).__init__(*args, **kwargs) - - def run(self): - self.viewing = True - while self.viewing and self._lock.acquire(): - try: - line = self._ss.readline().strip('\0\r\n\t ') - except: - pass - else: - logger.info(line) - self._lock.release() - time.sleep(0) - - def resume(self): - """Start dumping logs""" - self._lock.release() - - def pause(self): - """Start dumping logs""" - self._lock.acquire() diff --git a/tools/harness-automation/autothreadharness/runner.py b/tools/harness-automation/autothreadharness/runner.py index 9df2f47c4..a8684914b 100644 --- a/tools/harness-automation/autothreadharness/runner.py +++ b/tools/harness-automation/autothreadharness/runner.py @@ -114,6 +114,10 @@ class SimpleTestResult(unittest.TestResult): self.log_handler = None time.sleep(2) + # close explorers + os.system('taskkill /f /im explorer.exe && start explorer.exe') + + def addSuccess(self, test): logger.info('case[%s] pass', test.__class__.__name__) super(SimpleTestResult, self).addSuccess(test) @@ -138,8 +142,8 @@ class SimpleTestResult(unittest.TestResult): super(SimpleTestResult, self).addError(test, err) self.add_result(test, None, str(err[1])) -def discover(names=None, pattern='*.py', skip='efp', dry_run=False, - manual_reset=False, delete_blacklist=False, list_devices=False, +def discover(names=None, pattern='*.py', skip='efp', dry_run=False, blacklist=None, + manual_reset=False, delete_history=False, list_devices=False, max_devices=0, continue_from=None, result_file='./result.json', auto_reboot=False): '''Discover all test cases and skip those passed @@ -162,9 +166,20 @@ def discover(names=None, pattern='*.py', skip='efp', dry_run=False, logger.exception('failed to get version of %s' % port) return - if delete_blacklist: + if delete_history: os.system('del history.json') + if blacklist: + try: + excludes = filter(lambda line: not line.startswith('#'), + map(lambda line: line.strip('\n'), + open(blacklist, 'r').readlines())) + except: + logger.exception('Failed to open test case black list file') + raise + else: + excludes = [] + log = None if os.path.isfile(result_file): try: @@ -190,30 +205,38 @@ def discover(names=None, pattern='*.py', skip='efp', dry_run=False, case_name = unicode(case.__class__.__name__) # whitelist - if len(names): - if case_name in names: - suite.addTest(case) - logger.info('case[%s] added', case_name) + if len(names) and case_name not in names: + logger.info('case[%s] skipped', case_name) + continue # skip cases - else: - if case_name in log.keys(): - if (log[case_name]['passed'] and ('p' in skip)) \ - or (log[case_name]['passed'] is False and ('f' in skip)) \ - or (log[case_name]['passed'] is None and ('e' in skip)): - logger.warning('case[%s] skipped', case_name) - continue + if case_name in log.keys(): + if (log[case_name]['passed'] and ('p' in skip)) \ + or (log[case_name]['passed'] is False and ('f' in skip)) \ + or (log[case_name]['passed'] is None and ('e' in skip)): + logger.warning('case[%s] skipped for its status[%s]', case_name, log[case_name]['passed']) + continue - # continue from - if continue_from: - if continue_from != case_name: - logger.warning('case[%s] skipped', case_name) - continue - else: - continue_from = None + # continue from + if continue_from: + if continue_from != case_name: + logger.warning('case[%s] skipped for continue from[%s]', case_name, continue_from) + continue + else: + continue_from = None - suite.addTest(case) - logger.info('case[%s] added', case_name) + # black list + if case_name in excludes: + logger.warning('case[%s] skipped for blacklist', case_name) + continue + + # max devices + if max_devices and case.golden_devices_required > max_devices: + logger.warning('case[%s] skipped for exceeding max golden devices allowed[%d]', case_name, max_devices) + continue + + suite.addTest(case) + logger.info('case[%s] added', case_name) if auto_reboot: argv = [] @@ -226,7 +249,7 @@ def discover(names=None, pattern='*.py', skip='efp', dry_run=False, if manual_reset: argv.append('-m') - if delete_blacklist: + if delete_history: argv.append('-d') auto_reboot_args = argv + names @@ -247,14 +270,16 @@ def main(): parser = argparse.ArgumentParser(description='Thread harness test case runner') parser.add_argument('names', metavar='NAME', type=str, nargs='*', default=None, help='test case name, omit to test all') + parser.add_argument('--blacklist', '-b', metavar='BLACKLIST_FILE', type=str, + help='file to list test cases to skipt', default=None) parser.add_argument('--pattern', '-p', metavar='PATTERN', type=str, help='file name pattern, default to "*.py"', default='*.py') - parser.add_argument('--delete-blacklist', '-d', action='store_true', default=False, - help='clear blacklist on startup') + parser.add_argument('--delete-history', '-d', action='store_true', default=False, + help='clear history on startup') parser.add_argument('--skip', '-k', metavar='SKIP', type=str, help='type of results to skip.' \ 'e for error, f for fail, p for pass. default to "efp"', - default='efp') + default='') parser.add_argument('--dry-run', '-n', action='store_true', default=False, help='just show what to run') parser.add_argument('--result-file', '-o', type=str, default=settings.OUTPUT_PATH + '\\result.json', @@ -269,6 +294,8 @@ def main(): help='reset devices manually') parser.add_argument('--list-devices', '-l', action='store_true', default=False, help='list devices') + parser.add_argument('--max-devices', '-u', type=int, default=0, + help='max golden devices allowed') args = vars(parser.parse_args()) @@ -283,7 +310,6 @@ def main(): else: args['names'] = args['names'] + names - args.pop('list_file') discover(**args) diff --git a/tools/harness-automation/autothreadharness/settings_sample.py b/tools/harness-automation/autothreadharness/settings_sample.py index 6e9727dde..0c3ecb6c1 100644 --- a/tools/harness-automation/autothreadharness/settings_sample.py +++ b/tools/harness-automation/autothreadharness/settings_sample.py @@ -79,6 +79,12 @@ TESTER_NAME = 'Thread Open' TESTER_REMARKS = 'OpenThread is great' """str: Any comments in the final PDF""" +SER2NET_HOSTNAME = '192.168.1.1' +"""str: ser2net hostname, used by items in `GOLDEN_DEVICES` with prefix `NET`.""" + +SER2NET_PORTBASE = 9000 +"""str: ser2net port base, `NET1` will be mapped to `SER2NET_PORTBASE + 1`.""" + GOLDEN_DEVICE_TYPE = 'OpenThread' """str: Golden device type. Possible values are: `OpenThread`, `ARM`, `SiLabs` and `Freescale`.""" diff --git a/tools/harness-automation/cases/commissioner_8_1_1.py b/tools/harness-automation/cases/commissioner_8_1_1.py new file mode 100644 index 000000000..f732ffea8 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_1_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_1_1(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '8 1 1' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_1_2.py b/tools/harness-automation/cases/commissioner_8_1_2.py new file mode 100644 index 000000000..24d116662 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_1_2.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_1_2(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '8 1 2' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_1_6.py b/tools/harness-automation/cases/commissioner_8_1_6.py new file mode 100644 index 000000000..06d0980c2 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_1_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_1_6(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '8 1 6' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_2_1.py b/tools/harness-automation/cases/commissioner_8_2_1.py new file mode 100644 index 000000000..05bfc480d --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_2_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_2_1(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '! 8 2 1' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_2_2.py b/tools/harness-automation/cases/commissioner_8_2_2.py new file mode 100644 index 000000000..d4ff27c35 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_2_2.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_2_2(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '! 8 2 2' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_2_5.py b/tools/harness-automation/cases/commissioner_8_2_5.py new file mode 100644 index 000000000..fbe082c3c --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_2_5.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_2_5(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '! 8 2 5' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_2_6.py b/tools/harness-automation/cases/commissioner_8_2_6.py new file mode 100644 index 000000000..31bb7128c --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_2_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_2_6(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '8 2 6' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_8_3_1.py b/tools/harness-automation/cases/commissioner_8_3_1.py new file mode 100644 index 000000000..2ec664844 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_8_3_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_8_3_1(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '8 3 1' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_9_2_1.py b/tools/harness-automation/cases/commissioner_9_2_1.py new file mode 100644 index 000000000..66320ff24 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_9_2_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_9_2_1(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '9 2 1' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_9_2_14.py b/tools/harness-automation/cases/commissioner_9_2_14.py new file mode 100644 index 000000000..2ff8726b0 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_9_2_14.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_9_2_14(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '9 2 14' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_9_2_2.py b/tools/harness-automation/cases/commissioner_9_2_2.py new file mode 100644 index 000000000..d42bad752 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_9_2_2.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_9_2_2(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '9 2 2' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_9_2_3.py b/tools/harness-automation/cases/commissioner_9_2_3.py new file mode 100644 index 000000000..ba9fcc2ea --- /dev/null +++ b/tools/harness-automation/cases/commissioner_9_2_3.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_9_2_3(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '9 2 3' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/commissioner_9_2_4.py b/tools/harness-automation/cases/commissioner_9_2_4.py new file mode 100644 index 000000000..305ac04b1 --- /dev/null +++ b/tools/harness-automation/cases/commissioner_9_2_4.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Commissioner_9_2_4(HarnessCase): + role = HarnessCase.ROLE_COMMISSIONER + case = '9 2 4' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_6_1_1.py b/tools/harness-automation/cases/ed_6_1_1.py index 717b17455..599340e1a 100644 --- a/tools/harness-automation/cases/ed_6_1_1.py +++ b/tools/harness-automation/cases/ed_6_1_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_1_2.py b/tools/harness-automation/cases/ed_6_1_2.py index 29383bc15..7f0c9697d 100644 --- a/tools/harness-automation/cases/ed_6_1_2.py +++ b/tools/harness-automation/cases/ed_6_1_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_2(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_1_3.py b/tools/harness-automation/cases/ed_6_1_3.py index 887ac9b59..95e727773 100644 --- a/tools/harness-automation/cases/ed_6_1_3.py +++ b/tools/harness-automation/cases/ed_6_1_3.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_3(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 3' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_1_4.py b/tools/harness-automation/cases/ed_6_1_4.py index 7884afe25..14af10722 100644 --- a/tools/harness-automation/cases/ed_6_1_4.py +++ b/tools/harness-automation/cases/ed_6_1_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_4(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 4' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_1_5.py b/tools/harness-automation/cases/ed_6_1_5.py index 7c51ab2a7..6dba1cf39 100644 --- a/tools/harness-automation/cases/ed_6_1_5.py +++ b/tools/harness-automation/cases/ed_6_1_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_5(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 5' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_1_6.py b/tools/harness-automation/cases/ed_6_1_6.py index a5f245920..ad1f8212d 100644 --- a/tools/harness-automation/cases/ed_6_1_6.py +++ b/tools/harness-automation/cases/ed_6_1_6.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_1_6(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 1 6' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_2_1.py b/tools/harness-automation/cases/ed_6_2_1.py index f03fc2b81..14de0e43b 100644 --- a/tools/harness-automation/cases/ed_6_2_1.py +++ b/tools/harness-automation/cases/ed_6_2_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_2_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 2 1' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_2_2.py b/tools/harness-automation/cases/ed_6_2_2.py index 915c6900d..0b81776e9 100644 --- a/tools/harness-automation/cases/ed_6_2_2.py +++ b/tools/harness-automation/cases/ed_6_2_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_2_2(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 2 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_3_1.py b/tools/harness-automation/cases/ed_6_3_1.py index 0c18e7897..b4217ffa0 100644 --- a/tools/harness-automation/cases/ed_6_3_1.py +++ b/tools/harness-automation/cases/ed_6_3_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_3_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 3 1' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_4_1.py b/tools/harness-automation/cases/ed_6_4_1.py index f7e4b3c0f..18c0c0fa1 100644 --- a/tools/harness-automation/cases/ed_6_4_1.py +++ b/tools/harness-automation/cases/ed_6_4_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_4_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 4 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_4_2.py b/tools/harness-automation/cases/ed_6_4_2.py index e795f61d3..c6cd55024 100644 --- a/tools/harness-automation/cases/ed_6_4_2.py +++ b/tools/harness-automation/cases/ed_6_4_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_4_2(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 4 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_5_1.py b/tools/harness-automation/cases/ed_6_5_1.py index e4a1690c7..f062281ea 100644 --- a/tools/harness-automation/cases/ed_6_5_1.py +++ b/tools/harness-automation/cases/ed_6_5_1.py @@ -34,7 +34,7 @@ import time from autothreadharness.harness_case import HarnessCase class ED_6_5_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 5 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_5_2.py b/tools/harness-automation/cases/ed_6_5_2.py index 75d363217..8bb08fb2c 100644 --- a/tools/harness-automation/cases/ed_6_5_2.py +++ b/tools/harness-automation/cases/ed_6_5_2.py @@ -35,7 +35,7 @@ import re from autothreadharness.harness_case import HarnessCase class ED_6_5_2(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 5 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_5_3.py b/tools/harness-automation/cases/ed_6_5_3.py index 39b41fccd..14d3fb730 100644 --- a/tools/harness-automation/cases/ed_6_5_3.py +++ b/tools/harness-automation/cases/ed_6_5_3.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_5_3(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 5 3' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_6_1.py b/tools/harness-automation/cases/ed_6_6_1.py index 5c8975105..6aaa8b37b 100644 --- a/tools/harness-automation/cases/ed_6_6_1.py +++ b/tools/harness-automation/cases/ed_6_6_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_6_1(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 6 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_6_6_2.py b/tools/harness-automation/cases/ed_6_6_2.py index ebc832579..f9c9486c4 100644 --- a/tools/harness-automation/cases/ed_6_6_2.py +++ b/tools/harness-automation/cases/ed_6_6_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_6_2(HarnessCase): - suite = 32 + role = HarnessCase.ROLE_ED case = '6 6 2' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/ed_9_2_10.py b/tools/harness-automation/cases/ed_9_2_10.py new file mode 100644 index 000000000..81fc5547a --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_10.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_10(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 10' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_9_2_11.py b/tools/harness-automation/cases/ed_9_2_11.py new file mode 100644 index 000000000..a791573e0 --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_11.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_11(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 11' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_9_2_17.py b/tools/harness-automation/cases/ed_9_2_17.py new file mode 100644 index 000000000..d578a96ce --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_17.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_17(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 17' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_9_2_18.py b/tools/harness-automation/cases/ed_9_2_18.py new file mode 100644 index 000000000..bae884ff7 --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_18.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_18(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 18' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_9_2_6.py b/tools/harness-automation/cases/ed_9_2_6.py new file mode 100644 index 000000000..204fea280 --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_6(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 6' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/ed_9_2_8.py b/tools/harness-automation/cases/ed_9_2_8.py new file mode 100644 index 000000000..94bb8fd97 --- /dev/null +++ b/tools/harness-automation/cases/ed_9_2_8.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class ED_9_2_8(HarnessCase): + role = HarnessCase.ROLE_ED + case = '9 2 8' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/fed_6_1_7.py b/tools/harness-automation/cases/fed_6_1_7.py new file mode 100644 index 000000000..7f4fc4cee --- /dev/null +++ b/tools/harness-automation/cases/fed_6_1_7.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class FED_6_1_7(HarnessCase): + role = HarnessCase.ROLE_FED + case = '6 1 7' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/fed_9_2_13.py b/tools/harness-automation/cases/fed_9_2_13.py new file mode 100644 index 000000000..0db08a5b7 --- /dev/null +++ b/tools/harness-automation/cases/fed_9_2_13.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class FED_9_2_13(HarnessCase): + role = HarnessCase.ROLE_FED + case = '9 2 13' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/joiner_8_1_1.py b/tools/harness-automation/cases/joiner_8_1_1.py new file mode 100644 index 000000000..b6ecc8a95 --- /dev/null +++ b/tools/harness-automation/cases/joiner_8_1_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Joiner_8_1_1(HarnessCase): + role = HarnessCase.ROLE_JOINER + case = '8 1 1' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/joiner_8_1_6.py b/tools/harness-automation/cases/joiner_8_1_6.py new file mode 100644 index 000000000..3e593defb --- /dev/null +++ b/tools/harness-automation/cases/joiner_8_1_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Joiner_8_1_6(HarnessCase): + role = HarnessCase.ROLE_JOINER + case = '8 1 6' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_5_1_1.py b/tools/harness-automation/cases/leader_5_1_1.py index 7e5551ad0..529e1ae53 100644 --- a/tools/harness-automation/cases/leader_5_1_1.py +++ b/tools/harness-automation/cases/leader_5_1_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_1_1(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 1 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_1_13.py b/tools/harness-automation/cases/leader_5_1_13.py index 00c379306..2caaccfc1 100644 --- a/tools/harness-automation/cases/leader_5_1_13.py +++ b/tools/harness-automation/cases/leader_5_1_13.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_5_1_13(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 1 13' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_1_5.py b/tools/harness-automation/cases/leader_5_1_5.py index 6d0a9ce93..ffa582241 100644 --- a/tools/harness-automation/cases/leader_5_1_5.py +++ b/tools/harness-automation/cases/leader_5_1_5.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_5_1_5(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 1 5' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_2_3.py b/tools/harness-automation/cases/leader_5_2_3.py index 67f90d50c..c73aa3d21 100644 --- a/tools/harness-automation/cases/leader_5_2_3.py +++ b/tools/harness-automation/cases/leader_5_2_3.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_2_3(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 2 3' golden_devices_required = 32 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_3_6.py b/tools/harness-automation/cases/leader_5_3_6.py index 19a6f9ba8..2beb3a6f0 100644 --- a/tools/harness-automation/cases/leader_5_3_6.py +++ b/tools/harness-automation/cases/leader_5_3_6.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_5_3_6(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 3 6' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_3_7.py b/tools/harness-automation/cases/leader_5_3_7.py index a63283948..6f8005bdf 100644 --- a/tools/harness-automation/cases/leader_5_3_7.py +++ b/tools/harness-automation/cases/leader_5_3_7.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_3_7(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 3 7' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_3_8.py b/tools/harness-automation/cases/leader_5_3_8.py index beb8030bf..cfa0fcdf7 100644 --- a/tools/harness-automation/cases/leader_5_3_8.py +++ b/tools/harness-automation/cases/leader_5_3_8.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_3_8(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 3 8' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_5_1.py b/tools/harness-automation/cases/leader_5_5_1.py index dfc03f8f8..4565d526d 100644 --- a/tools/harness-automation/cases/leader_5_5_1.py +++ b/tools/harness-automation/cases/leader_5_5_1.py @@ -35,7 +35,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_5_1(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 5 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_5_2.py b/tools/harness-automation/cases/leader_5_5_2.py index e9c357805..35dd33577 100644 --- a/tools/harness-automation/cases/leader_5_5_2.py +++ b/tools/harness-automation/cases/leader_5_5_2.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_5_2(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 5 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_5_3.py b/tools/harness-automation/cases/leader_5_5_3.py index 74fd894d6..a156050f9 100644 --- a/tools/harness-automation/cases/leader_5_5_3.py +++ b/tools/harness-automation/cases/leader_5_5_3.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_5_3(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 5 3' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_5_4.py b/tools/harness-automation/cases/leader_5_5_4.py index c1d2d20f0..97e5b582f 100644 --- a/tools/harness-automation/cases/leader_5_5_4.py +++ b/tools/harness-automation/cases/leader_5_5_4.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_5_4(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 5 4' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_5_7.py b/tools/harness-automation/cases/leader_5_5_7.py index e8bd2c920..fe0219c24 100644 --- a/tools/harness-automation/cases/leader_5_5_7.py +++ b/tools/harness-automation/cases/leader_5_5_7.py @@ -34,7 +34,7 @@ import time import unittest class Leader_5_5_7(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 5 7' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_6_2.py b/tools/harness-automation/cases/leader_5_6_2.py index 4f6da0bd1..fdf1ac5c3 100644 --- a/tools/harness-automation/cases/leader_5_6_2.py +++ b/tools/harness-automation/cases/leader_5_6_2.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_5_6_2(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 6 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_6_4.py b/tools/harness-automation/cases/leader_5_6_4.py index 0ffd590dd..2ebcea1b9 100644 --- a/tools/harness-automation/cases/leader_5_6_4.py +++ b/tools/harness-automation/cases/leader_5_6_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_6_4(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 6 4' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_6_5.py b/tools/harness-automation/cases/leader_5_6_5.py index 07312bf5a..8fc393003 100644 --- a/tools/harness-automation/cases/leader_5_6_5.py +++ b/tools/harness-automation/cases/leader_5_6_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_6_5(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 6 5' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_6_6.py b/tools/harness-automation/cases/leader_5_6_6.py index 036c64717..3e0679804 100644 --- a/tools/harness-automation/cases/leader_5_6_6.py +++ b/tools/harness-automation/cases/leader_5_6_6.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Leader_5_6_6(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '5 6 6' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_5_8_4.py b/tools/harness-automation/cases/leader_5_8_4.py new file mode 100644 index 000000000..6110e6900 --- /dev/null +++ b/tools/harness-automation/cases/leader_5_8_4.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_5_8_4(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '5 8 4' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_7_1_1.py b/tools/harness-automation/cases/leader_7_1_1.py index 0a5da5b93..9e1e79837 100644 --- a/tools/harness-automation/cases/leader_7_1_1.py +++ b/tools/harness-automation/cases/leader_7_1_1.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_7_1_1(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '7 1 1' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_7_1_3.py b/tools/harness-automation/cases/leader_7_1_3.py index ca21681af..156680810 100644 --- a/tools/harness-automation/cases/leader_7_1_3.py +++ b/tools/harness-automation/cases/leader_7_1_3.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Leader_7_1_3(HarnessCase): - suite = 1 + role = HarnessCase.ROLE_LEADER case = '7 1 3' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/leader_8_3_1.py b/tools/harness-automation/cases/leader_8_3_1.py new file mode 100644 index 000000000..9fbbb0bd4 --- /dev/null +++ b/tools/harness-automation/cases/leader_8_3_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_8_3_1(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '8 3 1' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_1.py b/tools/harness-automation/cases/leader_9_2_1.py new file mode 100644 index 000000000..42447bc64 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_1(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 1' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_11.py b/tools/harness-automation/cases/leader_9_2_11.py new file mode 100644 index 000000000..ee1d83ca4 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_11.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_11(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 11' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_12.py b/tools/harness-automation/cases/leader_9_2_12.py new file mode 100644 index 000000000..d26581cae --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_12.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_12(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 12' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_18.py b/tools/harness-automation/cases/leader_9_2_18.py new file mode 100644 index 000000000..13340c7b8 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_18.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_18(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 18' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_2.py b/tools/harness-automation/cases/leader_9_2_2.py new file mode 100644 index 000000000..1e9fdbec0 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_2.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_2(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 2' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_3.py b/tools/harness-automation/cases/leader_9_2_3.py new file mode 100644 index 000000000..6638ceb25 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_3.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_3(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 3' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_4.py b/tools/harness-automation/cases/leader_9_2_4.py new file mode 100644 index 000000000..3bfccfea0 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_4.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_4(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 4' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_5.py b/tools/harness-automation/cases/leader_9_2_5.py new file mode 100644 index 000000000..6b01f3782 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_5.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_5(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 5' + golden_devices_required = 1 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_6.py b/tools/harness-automation/cases/leader_9_2_6.py new file mode 100644 index 000000000..1f7548c87 --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_6(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 6' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_7.py b/tools/harness-automation/cases/leader_9_2_7.py new file mode 100644 index 000000000..103cc314e --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_7.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_7(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 7' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/leader_9_2_9.py b/tools/harness-automation/cases/leader_9_2_9.py new file mode 100644 index 000000000..0d87fc02e --- /dev/null +++ b/tools/harness-automation/cases/leader_9_2_9.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Leader_9_2_9(HarnessCase): + role = HarnessCase.ROLE_LEADER + case = '9 2 9' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/med_6_3_2.py b/tools/harness-automation/cases/med_6_3_2.py index f7093e523..caab0ebea 100644 --- a/tools/harness-automation/cases/med_6_3_2.py +++ b/tools/harness-automation/cases/med_6_3_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class ED_6_3_2(HarnessCase): - suite = 1024 + role = HarnessCase.ROLE_MED case = '6 3 2' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/med_9_2_12.py b/tools/harness-automation/cases/med_9_2_12.py new file mode 100644 index 000000000..85c10cac8 --- /dev/null +++ b/tools/harness-automation/cases/med_9_2_12.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class MED_9_2_12(HarnessCase): + role = HarnessCase.ROLE_MED + case = '9 2 12' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/med_9_2_13.py b/tools/harness-automation/cases/med_9_2_13.py new file mode 100644 index 000000000..639bb5669 --- /dev/null +++ b/tools/harness-automation/cases/med_9_2_13.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class MED_9_2_13(HarnessCase): + role = HarnessCase.ROLE_MED + case = '9 2 13' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/reed_5_2_4.py b/tools/harness-automation/cases/reed_5_2_4.py index 2cd404dc2..fd63589c7 100644 --- a/tools/harness-automation/cases/reed_5_2_4.py +++ b/tools/harness-automation/cases/reed_5_2_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class REED_5_2_4(HarnessCase): - suite = 16 + role = HarnessCase.ROLE_REED case = '5 2 4' golden_devices_required = 18 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/reed_5_2_5.py b/tools/harness-automation/cases/reed_5_2_5.py index 73e8f9caf..8d05e4795 100644 --- a/tools/harness-automation/cases/reed_5_2_5.py +++ b/tools/harness-automation/cases/reed_5_2_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class REED_5_2_5(HarnessCase): - suite = 16 + role = HarnessCase.ROLE_REED case = '5 2 5' golden_devices_required = 17 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/reed_5_2_7.py b/tools/harness-automation/cases/reed_5_2_7.py index 3dc1c19c2..c0aafda4a 100644 --- a/tools/harness-automation/cases/reed_5_2_7.py +++ b/tools/harness-automation/cases/reed_5_2_7.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class REED_5_2_7(HarnessCase): - suite = 16 + role = HarnessCase.ROLE_REED case = '5 2 7' golden_devices_required = 16 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/reed_5_5_5.py b/tools/harness-automation/cases/reed_5_5_5.py index 73af97482..7160b99cb 100644 --- a/tools/harness-automation/cases/reed_5_5_5.py +++ b/tools/harness-automation/cases/reed_5_5_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class REED_5_5_5(HarnessCase): - suite = 16 + role = HarnessCase.ROLE_REED case = '5 5 5' golden_devices_required = 16 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/reed_5_6_7.py b/tools/harness-automation/cases/reed_5_6_7.py index d6c56d568..71076fac0 100644 --- a/tools/harness-automation/cases/reed_5_6_7.py +++ b/tools/harness-automation/cases/reed_5_6_7.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class REED_5_6_7(HarnessCase): - suite = 16 + role = HarnessCase.ROLE_REED case = '5 6 7' golden_devices_required = 16 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_1.py b/tools/harness-automation/cases/router_5_1_1.py index 1cab15ea2..6205502fc 100644 --- a/tools/harness-automation/cases/router_5_1_1.py +++ b/tools/harness-automation/cases/router_5_1_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_10.py b/tools/harness-automation/cases/router_5_1_10.py index 05c28bbd5..0cfbb9c22 100644 --- a/tools/harness-automation/cases/router_5_1_10.py +++ b/tools/harness-automation/cases/router_5_1_10.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_10(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 10' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_11.py b/tools/harness-automation/cases/router_5_1_11.py index 544e10c08..dc08d7fce 100644 --- a/tools/harness-automation/cases/router_5_1_11.py +++ b/tools/harness-automation/cases/router_5_1_11.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_11(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 11' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_12.py b/tools/harness-automation/cases/router_5_1_12.py index 0638caea5..32c9224c6 100644 --- a/tools/harness-automation/cases/router_5_1_12.py +++ b/tools/harness-automation/cases/router_5_1_12.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_12(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 12' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_13.py b/tools/harness-automation/cases/router_5_1_13.py index 953f471e5..580c02ecd 100644 --- a/tools/harness-automation/cases/router_5_1_13.py +++ b/tools/harness-automation/cases/router_5_1_13.py @@ -34,7 +34,7 @@ import time from autothreadharness.harness_case import HarnessCase class Router_5_1_13(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 13' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_2.py b/tools/harness-automation/cases/router_5_1_2.py index 3c9cc070e..b482f8231 100644 --- a/tools/harness-automation/cases/router_5_1_2.py +++ b/tools/harness-automation/cases/router_5_1_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_2(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_3.py b/tools/harness-automation/cases/router_5_1_3.py index ebf775be4..fd977230c 100644 --- a/tools/harness-automation/cases/router_5_1_3.py +++ b/tools/harness-automation/cases/router_5_1_3.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_3(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 3' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_4.py b/tools/harness-automation/cases/router_5_1_4.py index 03a0e95ee..ce6799d0e 100644 --- a/tools/harness-automation/cases/router_5_1_4.py +++ b/tools/harness-automation/cases/router_5_1_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_4(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 4' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_6.py b/tools/harness-automation/cases/router_5_1_6.py index 8080076cc..d56b3d8ef 100644 --- a/tools/harness-automation/cases/router_5_1_6.py +++ b/tools/harness-automation/cases/router_5_1_6.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_6(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 6' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_7.py b/tools/harness-automation/cases/router_5_1_7.py index 941f1f94c..5116d9428 100644 --- a/tools/harness-automation/cases/router_5_1_7.py +++ b/tools/harness-automation/cases/router_5_1_7.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_7(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 7' golden_devices_required = 11 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_8.py b/tools/harness-automation/cases/router_5_1_8.py index 0fd4167c8..396570ba2 100644 --- a/tools/harness-automation/cases/router_5_1_8.py +++ b/tools/harness-automation/cases/router_5_1_8.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_8(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 8' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_1_9.py b/tools/harness-automation/cases/router_5_1_9.py index 98376c1b8..ef403745e 100644 --- a/tools/harness-automation/cases/router_5_1_9.py +++ b/tools/harness-automation/cases/router_5_1_9.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_1_9(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 1 9' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_2_1.py b/tools/harness-automation/cases/router_5_2_1.py index d71dabd2e..2807633bc 100644 --- a/tools/harness-automation/cases/router_5_2_1.py +++ b/tools/harness-automation/cases/router_5_2_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_2_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 2 1' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_2_6.py b/tools/harness-automation/cases/router_5_2_6.py index 1b9047cbb..d40be6737 100644 --- a/tools/harness-automation/cases/router_5_2_6.py +++ b/tools/harness-automation/cases/router_5_2_6.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_2_6(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 2 6' golden_devices_required = 23 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_2_7.py b/tools/harness-automation/cases/router_5_2_7.py index f1d1af822..38e00f1a5 100644 --- a/tools/harness-automation/cases/router_5_2_7.py +++ b/tools/harness-automation/cases/router_5_2_7.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_2_7(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 2 7' golden_devices_required = 16 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_1.py b/tools/harness-automation/cases/router_5_3_1.py index d2c60a432..8a1af7ccf 100644 --- a/tools/harness-automation/cases/router_5_3_1.py +++ b/tools/harness-automation/cases/router_5_3_1.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_10.py b/tools/harness-automation/cases/router_5_3_10.py index 045140320..506347144 100644 --- a/tools/harness-automation/cases/router_5_3_10.py +++ b/tools/harness-automation/cases/router_5_3_10.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_10(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 10' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_11.py b/tools/harness-automation/cases/router_5_3_11.py index abab8ab98..5e38bad00 100644 --- a/tools/harness-automation/cases/router_5_3_11.py +++ b/tools/harness-automation/cases/router_5_3_11.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_11(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 11' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_2.py b/tools/harness-automation/cases/router_5_3_2.py index ebb652eb1..70b13a1a5 100644 --- a/tools/harness-automation/cases/router_5_3_2.py +++ b/tools/harness-automation/cases/router_5_3_2.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_2(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_3.py b/tools/harness-automation/cases/router_5_3_3.py index 9f5da287a..1feeb02a8 100644 --- a/tools/harness-automation/cases/router_5_3_3.py +++ b/tools/harness-automation/cases/router_5_3_3.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_3(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 3' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_4.py b/tools/harness-automation/cases/router_5_3_4.py index f48791fc4..57dca7681 100644 --- a/tools/harness-automation/cases/router_5_3_4.py +++ b/tools/harness-automation/cases/router_5_3_4.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_4(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 4' golden_devices_required = 6 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_5.py b/tools/harness-automation/cases/router_5_3_5.py index fca1e97bf..f84c0e844 100644 --- a/tools/harness-automation/cases/router_5_3_5.py +++ b/tools/harness-automation/cases/router_5_3_5.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_5(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 5' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_3_9.py b/tools/harness-automation/cases/router_5_3_9.py index 29dffa4f1..3c454ed61 100644 --- a/tools/harness-automation/cases/router_5_3_9.py +++ b/tools/harness-automation/cases/router_5_3_9.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_3_9(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 3 9' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_5_1.py b/tools/harness-automation/cases/router_5_5_1.py index c88527b8f..fd11f5b70 100644 --- a/tools/harness-automation/cases/router_5_5_1.py +++ b/tools/harness-automation/cases/router_5_5_1.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_5_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 5 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_5_2.py b/tools/harness-automation/cases/router_5_5_2.py index 4565e4cc1..62bde02e9 100644 --- a/tools/harness-automation/cases/router_5_5_2.py +++ b/tools/harness-automation/cases/router_5_5_2.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_5_2(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 5 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_5_3.py b/tools/harness-automation/cases/router_5_5_3.py index adc1a8a43..e5de7c8e1 100644 --- a/tools/harness-automation/cases/router_5_5_3.py +++ b/tools/harness-automation/cases/router_5_5_3.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_5_3(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 5 3' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_5_4.py b/tools/harness-automation/cases/router_5_5_4.py index a6ace0c8a..1eab96250 100644 --- a/tools/harness-automation/cases/router_5_5_4.py +++ b/tools/harness-automation/cases/router_5_5_4.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_5_4(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 5 4' golden_devices_required = 5 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_5_7.py b/tools/harness-automation/cases/router_5_5_7.py index 96ee040ae..81481bdb1 100644 --- a/tools/harness-automation/cases/router_5_5_7.py +++ b/tools/harness-automation/cases/router_5_5_7.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_5_7(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 5 7' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_6_1.py b/tools/harness-automation/cases/router_5_6_1.py index 47b683d4c..ad6d00990 100644 --- a/tools/harness-automation/cases/router_5_6_1.py +++ b/tools/harness-automation/cases/router_5_6_1.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_6_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 6 1' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_6_3.py b/tools/harness-automation/cases/router_5_6_3.py index 62f598723..17ffb1616 100644 --- a/tools/harness-automation/cases/router_5_6_3.py +++ b/tools/harness-automation/cases/router_5_6_3.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_6_3(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 6 3' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_6_9.py b/tools/harness-automation/cases/router_5_6_9.py index 66988102b..86d42a6aa 100644 --- a/tools/harness-automation/cases/router_5_6_9.py +++ b/tools/harness-automation/cases/router_5_6_9.py @@ -32,7 +32,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_6_9(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 6 9' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_7_1.py b/tools/harness-automation/cases/router_5_7_1.py index c75875a11..e23a1894e 100644 --- a/tools/harness-automation/cases/router_5_7_1.py +++ b/tools/harness-automation/cases/router_5_7_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_5_7_1(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 7 1' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_8_2.py b/tools/harness-automation/cases/router_5_8_2.py index c4695c699..e4a622167 100644 --- a/tools/harness-automation/cases/router_5_8_2.py +++ b/tools/harness-automation/cases/router_5_8_2.py @@ -31,7 +31,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_8_2(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 8 2' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_5_8_3.py b/tools/harness-automation/cases/router_5_8_3.py index d4ff11e3f..b129bb593 100644 --- a/tools/harness-automation/cases/router_5_8_3.py +++ b/tools/harness-automation/cases/router_5_8_3.py @@ -31,7 +31,7 @@ from autothreadharness.harness_case import HarnessCase import unittest class Router_5_8_3(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '5 8 3' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_7_1_2.py b/tools/harness-automation/cases/router_7_1_2.py index a296af854..825bd4437 100644 --- a/tools/harness-automation/cases/router_7_1_2.py +++ b/tools/harness-automation/cases/router_7_1_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_7_1_2(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '7 1 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_7_1_4.py b/tools/harness-automation/cases/router_7_1_4.py index 183a81a51..17e3418c2 100644 --- a/tools/harness-automation/cases/router_7_1_4.py +++ b/tools/harness-automation/cases/router_7_1_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_7_1_4(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '7 1 4' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_7_1_5.py b/tools/harness-automation/cases/router_7_1_5.py index f8252f7c6..9c9b9f558 100644 --- a/tools/harness-automation/cases/router_7_1_5.py +++ b/tools/harness-automation/cases/router_7_1_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_7_1_5(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '7 1 5' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_7_1_8.py b/tools/harness-automation/cases/router_7_1_8.py index c457cf96d..16796442a 100644 --- a/tools/harness-automation/cases/router_7_1_8.py +++ b/tools/harness-automation/cases/router_7_1_8.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class Router_7_1_8(HarnessCase): - suite = 2 + role = HarnessCase.ROLE_ROUTER case = '7 1 8' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/router_8_2_1.py b/tools/harness-automation/cases/router_8_2_1.py new file mode 100644 index 000000000..3f75c424e --- /dev/null +++ b/tools/harness-automation/cases/router_8_2_1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_8_2_1(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '! 8 2 1' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_8_2_2.py b/tools/harness-automation/cases/router_8_2_2.py new file mode 100644 index 000000000..ae939ad61 --- /dev/null +++ b/tools/harness-automation/cases/router_8_2_2.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_8_2_2(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '! 8 2 2' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_8_2_5.py b/tools/harness-automation/cases/router_8_2_5.py new file mode 100644 index 000000000..afa8d32cc --- /dev/null +++ b/tools/harness-automation/cases/router_8_2_5.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_8_2_5(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '! 8 2 5' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_10.py b/tools/harness-automation/cases/router_9_2_10.py new file mode 100644 index 000000000..344bd3e4a --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_10.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_10(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 10' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_11.py b/tools/harness-automation/cases/router_9_2_11.py new file mode 100644 index 000000000..b1743c68e --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_11.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_11(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 11' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_12.py b/tools/harness-automation/cases/router_9_2_12.py new file mode 100644 index 000000000..bfa7c8d97 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_12.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_12(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 12' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_13.py b/tools/harness-automation/cases/router_9_2_13.py new file mode 100644 index 000000000..1b608a72f --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_13.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_13(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 13' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_14.py b/tools/harness-automation/cases/router_9_2_14.py new file mode 100644 index 000000000..17b7fd051 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_14.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_14(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 14' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_15.py b/tools/harness-automation/cases/router_9_2_15.py new file mode 100644 index 000000000..be7938f53 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_15.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_15(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 15' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_16.py b/tools/harness-automation/cases/router_9_2_16.py new file mode 100644 index 000000000..dd1f93eff --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_16.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_16(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 16' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_18.py b/tools/harness-automation/cases/router_9_2_18.py new file mode 100644 index 000000000..24222b8cf --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_18.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_18(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 18' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_6.py b/tools/harness-automation/cases/router_9_2_6.py new file mode 100644 index 000000000..746f7e6f4 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_6(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 6' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_8.py b/tools/harness-automation/cases/router_9_2_8.py new file mode 100644 index 000000000..d4fe6dbe1 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_8.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_8(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 8' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/router_9_2_9.py b/tools/harness-automation/cases/router_9_2_9.py new file mode 100644 index 000000000..72bf3e9a3 --- /dev/null +++ b/tools/harness-automation/cases/router_9_2_9.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class Router_9_2_9(HarnessCase): + role = HarnessCase.ROLE_ROUTER + case = '9 2 9' + golden_devices_required = 3 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_6_1_1.py b/tools/harness-automation/cases/sed_6_1_1.py index 1b3e43b9d..9284944f3 100644 --- a/tools/harness-automation/cases/sed_6_1_1.py +++ b/tools/harness-automation/cases/sed_6_1_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_1_2.py b/tools/harness-automation/cases/sed_6_1_2.py index 542672887..be01fdf58 100644 --- a/tools/harness-automation/cases/sed_6_1_2.py +++ b/tools/harness-automation/cases/sed_6_1_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_1_3.py b/tools/harness-automation/cases/sed_6_1_3.py index 15bc43d4c..329ca46da 100644 --- a/tools/harness-automation/cases/sed_6_1_3.py +++ b/tools/harness-automation/cases/sed_6_1_3.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_3(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 3' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_1_4.py b/tools/harness-automation/cases/sed_6_1_4.py index 60d0839e3..2ea2e7b20 100644 --- a/tools/harness-automation/cases/sed_6_1_4.py +++ b/tools/harness-automation/cases/sed_6_1_4.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_4(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 4' golden_devices_required = 4 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_1_5.py b/tools/harness-automation/cases/sed_6_1_5.py index ed1bf8243..3b5946491 100644 --- a/tools/harness-automation/cases/sed_6_1_5.py +++ b/tools/harness-automation/cases/sed_6_1_5.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_5(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 5' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_1_6.py b/tools/harness-automation/cases/sed_6_1_6.py index be94c1e98..9e681cfc6 100644 --- a/tools/harness-automation/cases/sed_6_1_6.py +++ b/tools/harness-automation/cases/sed_6_1_6.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_1_6(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 1 6' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_2_1.py b/tools/harness-automation/cases/sed_6_2_1.py index 17c673b04..ba8d7ea17 100644 --- a/tools/harness-automation/cases/sed_6_2_1.py +++ b/tools/harness-automation/cases/sed_6_2_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_2_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 2 1' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_2_2.py b/tools/harness-automation/cases/sed_6_2_2.py index 76c236d6c..9bbd8145b 100644 --- a/tools/harness-automation/cases/sed_6_2_2.py +++ b/tools/harness-automation/cases/sed_6_2_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_2_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 2 2' golden_devices_required = 3 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_3_1.py b/tools/harness-automation/cases/sed_6_3_1.py index 2751a5bf1..86e87fd95 100644 --- a/tools/harness-automation/cases/sed_6_3_1.py +++ b/tools/harness-automation/cases/sed_6_3_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_3_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 3 1' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_3_2.py b/tools/harness-automation/cases/sed_6_3_2.py index 712f229ee..b31b601af 100644 --- a/tools/harness-automation/cases/sed_6_3_2.py +++ b/tools/harness-automation/cases/sed_6_3_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_3_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 3 2' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_4_1.py b/tools/harness-automation/cases/sed_6_4_1.py index d89610e33..b5f8f8eca 100644 --- a/tools/harness-automation/cases/sed_6_4_1.py +++ b/tools/harness-automation/cases/sed_6_4_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_4_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 4 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_4_2.py b/tools/harness-automation/cases/sed_6_4_2.py index 8f0af509a..9c3d2bdfa 100644 --- a/tools/harness-automation/cases/sed_6_4_2.py +++ b/tools/harness-automation/cases/sed_6_4_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_4_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 4 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_5_1.py b/tools/harness-automation/cases/sed_6_5_1.py index 313f068f7..e539580c3 100644 --- a/tools/harness-automation/cases/sed_6_5_1.py +++ b/tools/harness-automation/cases/sed_6_5_1.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_5_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 5 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_5_2.py b/tools/harness-automation/cases/sed_6_5_2.py index ded10285b..8be5b6729 100644 --- a/tools/harness-automation/cases/sed_6_5_2.py +++ b/tools/harness-automation/cases/sed_6_5_2.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_5_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 5 2' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_5_3.py b/tools/harness-automation/cases/sed_6_5_3.py index 3c45b3938..e8f720ce1 100644 --- a/tools/harness-automation/cases/sed_6_5_3.py +++ b/tools/harness-automation/cases/sed_6_5_3.py @@ -34,7 +34,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_5_3(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 5 3' golden_devices_required = 2 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_6_1.py b/tools/harness-automation/cases/sed_6_6_1.py index bdf6c3a19..5b60eee6e 100644 --- a/tools/harness-automation/cases/sed_6_6_1.py +++ b/tools/harness-automation/cases/sed_6_6_1.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_6_1(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 6 1' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_6_6_2.py b/tools/harness-automation/cases/sed_6_6_2.py index beb08ba19..7c1e159b8 100644 --- a/tools/harness-automation/cases/sed_6_6_2.py +++ b/tools/harness-automation/cases/sed_6_6_2.py @@ -33,7 +33,7 @@ import unittest from autothreadharness.harness_case import HarnessCase class SED_6_6_2(HarnessCase): - suite = 4 + role = HarnessCase.ROLE_SED case = '6 6 2' golden_devices_required = 1 def on_dialog(self, dialog, title): diff --git a/tools/harness-automation/cases/sed_9_2_10.py b/tools/harness-automation/cases/sed_9_2_10.py new file mode 100644 index 000000000..88b9855a4 --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_10.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_10(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 10' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_11.py b/tools/harness-automation/cases/sed_9_2_11.py new file mode 100644 index 000000000..ea229ff48 --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_11.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_11(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 11' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_13.py b/tools/harness-automation/cases/sed_9_2_13.py new file mode 100644 index 000000000..c703f185c --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_13.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_13(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 13' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_17.py b/tools/harness-automation/cases/sed_9_2_17.py new file mode 100644 index 000000000..731750387 --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_17.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_17(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 17' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_18.py b/tools/harness-automation/cases/sed_9_2_18.py new file mode 100644 index 000000000..ca43ed83d --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_18.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_18(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 18' + golden_devices_required = 5 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_6.py b/tools/harness-automation/cases/sed_9_2_6.py new file mode 100644 index 000000000..482082583 --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_6.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_6(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 6' + golden_devices_required = 4 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/cases/sed_9_2_8.py b/tools/harness-automation/cases/sed_9_2_8.py new file mode 100644 index 000000000..67889d3c4 --- /dev/null +++ b/tools/harness-automation/cases/sed_9_2_8.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + + +import unittest + +from autothreadharness.harness_case import HarnessCase + +class SED_9_2_8(HarnessCase): + role = HarnessCase.ROLE_SED + case = '9 2 8' + golden_devices_required = 2 + def on_dialog(self, dialog, title): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/tools/harness-automation/gencsv.py b/tools/harness-automation/gencsv.py new file mode 100755 index 000000000..e5d152f74 --- /dev/null +++ b/tools/harness-automation/gencsv.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +import json +import sys + + +if len(sys.argv) > 1: + filename = sys.argv[1] +else: + filename = './result.json' + +def get_key(item): + ds = item[0].split('_') + no = int(ds[1]) * 10000 + int(ds[2]) * 100 + int(ds[3]) + ro = ds[0] + return '%d-%s' % (no, ro) + +result = json.load(open(filename, 'r')) +o = open('./result.csv', 'w') +o.write('Case,Status,Started,Stopped,Reason\n') +for k, v in sorted(result.items(), key=get_key): + o.write('%s,%s,%s,%s,%s\n' % (k, (v['passed'] and 'Pass') or 'Fail', v['started'], v['stopped'], (v['error'] or '').replace('\n', ' '))) diff --git a/tools/harness-automation/start.sh b/tools/harness-automation/start.sh index b1fe2e8ad..d5d639bcd 100755 --- a/tools/harness-automation/start.sh +++ b/tools/harness-automation/start.sh @@ -1,2 +1,3 @@ #!/bin/sh +cd $(dirname $0) python -u -m autothreadharness.runner $@