class HostOSDetectionTestCase(unittest.TestCase):
    def setUp(self):
        self.plugin_base = HostTestPluginBase()
        self.os_names = ["Windows7", "Ubuntu", "LinuxGeneric", "Darwin"]
        self.re_float = re.compile("^\d+\.\d+$")

    def tearDown(self):
        pass

    def test_os_info(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_info())

    def test_os_support(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_support())

    def test_supported_os_name(self):
        self.assertIn(self.plugin_base.mbed_os_support(), self.os_names)

    def test_detect_os_support_ext(self):
        os_info = (os.name, platform.system(), platform.release(), platform.version(), sys.platform)

        self.assertEqual(os_info, self.plugin_base.mbed_os_info())

    def test_pyserial_version_as_float(self):
        pyserial_version = pkg_resources.require("pyserial")[0].version
        # We want to make sure pyserial version is a parsabl;e float
        # Because we are using float(version) conversion to check version
        # of this module
        self.assertTrue(self.re_float.findall(pyserial_version))
Example #2
0
class HostOSDetectionTestCase(unittest.TestCase):
    def setUp(self):
        self.plugin_base = HostTestPluginBase()
        self.os_names = ['Windows7', 'Ubuntu', 'LinuxGeneric', 'Darwin']
        self.re_float = re.compile("^\d+\.\d+$")

    def tearDown(self):
        pass

    def test_os_info(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_info())

    def test_os_support(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_support())

    def test_supported_os_name(self):
        self.assertIn(self.plugin_base.mbed_os_support(), self.os_names)

    def test_detect_os_support_ext(self):
        os_info = (os.name, platform.system(), platform.release(),
                   platform.version(), sys.platform)

        self.assertEqual(os_info, self.plugin_base.mbed_os_info())

    def test_pyserial_version_as_float(self):
        pyserial_version = pkg_resources.require("pyserial")[0].version
        # We want to make sure pyserial version is a parsabl;e float
        # Because we are using float(version) conversion to check version
        # of this module
        self.assertTrue(self.re_float.findall(pyserial_version))
Example #3
0
class HostOSDetectionTestCase(unittest.TestCase):

    def setUp(self):
        self.plugin_base = HostTestPluginBase()

        pass

    def tearDown(self):
        pass

    def test_os_info(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_info())

    def test_os_support(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_support())

    def test_supported_os_name(self):
        os_names = ['Windows7', 'Ubuntu', 'LinuxGeneric', 'Darwin']
        self.assertIn(self.plugin_base.mbed_os_support(), os_names)

    def test_detect_os_support_ext(self):
        os_info = (os.name,
                   platform.system(),
                   platform.release(),
                   platform.version(),
                   sys.platform)

        self.assertEqual(os_info, self.plugin_base.mbed_os_info())
Example #4
0
    def __init__(self, name, port, baudrate, config):
        ConnectorPrimitive.__init__(self, name)
        self.port = port
        self.baudrate = int(baudrate)
        self.read_timeout = 0.01  # 10 milli sec
        self.write_timeout = 5
        self.config = config
        self.target_id = self.config.get('target_id', None)
        self.polling_timeout = config.get('polling_timeout', 60)
        self.forced_reset_timeout = config.get('forced_reset_timeout', 1)
        self.skip_reset = config.get('skip_reset', False)
        self.serial = None

        # Check if serial port for given target_id changed
        # If it does we will use new port to open connections and make sure reset plugin
        # later can reuse opened already serial port
        #
        # Note: This listener opens serial port and keeps connection so reset plugin uses
        # serial port object not serial port name!
        serial_port = HostTestPluginBase().check_serial_port_ready(
            self.port, target_id=self.target_id, timeout=self.polling_timeout)
        if serial_port is None:
            raise ConnectorPrimitiveException("Serial port not ready!")

        if serial_port != self.port:
            # Serial port changed for given targetID
            self.logger.prn_inf("serial port changed from '%s to '%s')" %
                                (self.port, serial_port))
            self.port = serial_port

        startTime = time.time()
        self.logger.prn_inf(
            "serial(port=%s, baudrate=%d, read_timeout=%s, write_timeout=%d)" %
            (self.port, self.baudrate, self.read_timeout, self.write_timeout))
        while time.time() - startTime < self.polling_timeout:
            try:
                # TIMEOUT: While creating Serial object timeout is delibrately passed as 0. Because blocking in Serial.read
                # impacts thread and mutliprocess functioning in Python. Hence, instead in self.read() s delay (sleep()) is
                # inserted to let serial buffer collect data and avoid spinning on non blocking read().
                self.serial = Serial(self.port,
                                     baudrate=self.baudrate,
                                     timeout=0,
                                     write_timeout=self.write_timeout)
            except SerialException as e:
                self.serial = None
                self.LAST_ERROR = "connection lost, serial.Serial(%s, %d, %d, %d): %s" % (
                    self.port, self.baudrate, self.read_timeout,
                    self.write_timeout, str(e))
                self.logger.prn_err(str(e))
                self.logger.prn_err("Retry after 1 sec until %s seconds" %
                                    self.polling_timeout)
            else:
                if not self.skip_reset:
                    self.reset_dev_via_serial(delay=self.forced_reset_timeout)
                break
            time.sleep(1)
Example #5
0
class HostOSDetectionTestCase(unittest.TestCase):
    def setUp(self):
        self.plugin_base = HostTestPluginBase()
        self.os_names = ['Windows7', 'Ubuntu', 'LinuxGeneric', 'Darwin']
        self.re_float = re.compile("^\d+\.\d+$")

    def tearDown(self):
        pass

    def test_os_info(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_info())

    def test_os_support(self):
        self.assertNotEqual(None, self.plugin_base.mbed_os_support())

    def test_supported_os_name(self):
        self.assertIn(self.plugin_base.mbed_os_support(), self.os_names)

    def test_detect_os_support_ext(self):
        os_info = (os.name, platform.system(), platform.release(),
                   platform.version(), sys.platform)

        self.assertEqual(os_info, self.plugin_base.mbed_os_info())
Example #6
0
    def __init__(self, port, baudrate, prn_lock, config):
        self.port = port
        self.baudrate = int(baudrate)
        self.timeout = 0
        self.prn_lock = prn_lock
        self.config = config
        self.logger = HtrunLogger(prn_lock, 'SERI')
        self.LAST_ERROR = None
        self.target_id = self.config.get('target_id', None)
        self.serial_pooling = config.get('serial_pooling', 60)
        self.forced_reset_timeout = config.get('forced_reset_timeout', 1)

        # Values used to call serial port listener...
        self.logger.prn_inf("serial(port=%s, baudrate=%d, timeout=%s)" %
                            (self.port, self.baudrate, self.timeout))

        # Check if serial port for given target_id changed
        # If it does we will use new port to open connections and make sure reset plugin
        # later can reuse opened already serial port
        #
        # Note: This listener opens serial port and keeps connection so reset plugin uses
        # serial port object not serial port name!
        _, serial_port = HostTestPluginBase().check_serial_port_ready(
            self.port, target_id=self.target_id, timeout=self.serial_pooling)
        if serial_port != self.port:
            # Serial port changed for given targetID
            self.logger.prn_inf("serial port changed from '%s to '%s')" %
                                (self.port, serial_port))
            self.port = serial_port

        try:
            self.serial = Serial(self.port,
                                 baudrate=self.baudrate,
                                 timeout=self.timeout)
        except SerialException as e:
            self.serial = None
            self.LAST_ERROR = "connection lost, serial.Serial(%s. %d, %d): %s" % (
                self.port, self.baudrate, self.timeout, str(e))
            self.logger.prn_err(str(e))
        else:
            self.reset_dev_via_serial(delay=self.forced_reset_timeout)
 def setUp(self):
     self.plugin_base = HostTestPluginBase()
     self.os_names = ["Windows7", "Ubuntu", "LinuxGeneric", "Darwin"]
     self.re_float = re.compile("^\d+\.\d+$")
Example #8
0
 def setUp(self):
     self.plugin_base = HostTestPluginBase()
     self.os_names = ['Windows7', 'Ubuntu', 'LinuxGeneric', 'Darwin']
     self.re_float = re.compile("^\d+\.\d+$")
Example #9
0
    def setUp(self):
        self.plugin_base = HostTestPluginBase()

        pass
Example #10
0
 def setUp(self):
     self.plugin_base = HostTestPluginBase()
     self.os_names = ['Windows7', 'Ubuntu', 'LinuxGeneric', 'Darwin']
     self.re_float = re.compile("^\d+\.\d+$")