the other jimmy / mbed-sdk-tools

Fork of mbed-sdk-tools by mbed official

Committer:
screamer
Date:
Thu May 19 19:44:41 2016 +0100
Revision:
0:66f3b5499f7f
Initial revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:66f3b5499f7f 1 """
screamer 0:66f3b5499f7f 2 mbed SDK
screamer 0:66f3b5499f7f 3 Copyright (c) 2011-2015 ARM Limited
screamer 0:66f3b5499f7f 4
screamer 0:66f3b5499f7f 5 Licensed under the Apache License, Version 2.0 (the "License");
screamer 0:66f3b5499f7f 6 you may not use this file except in compliance with the License.
screamer 0:66f3b5499f7f 7 You may obtain a copy of the License at
screamer 0:66f3b5499f7f 8
screamer 0:66f3b5499f7f 9 http://www.apache.org/licenses/LICENSE-2.0
screamer 0:66f3b5499f7f 10
screamer 0:66f3b5499f7f 11 Unless required by applicable law or agreed to in writing, software
screamer 0:66f3b5499f7f 12 distributed under the License is distributed on an "AS IS" BASIS,
screamer 0:66f3b5499f7f 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
screamer 0:66f3b5499f7f 14 See the License for the specific language governing permissions and
screamer 0:66f3b5499f7f 15 limitations under the License.
screamer 0:66f3b5499f7f 16
screamer 0:66f3b5499f7f 17 Author: Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
screamer 0:66f3b5499f7f 18
screamer 0:66f3b5499f7f 19 """
screamer 0:66f3b5499f7f 20
screamer 0:66f3b5499f7f 21 from ioper_base import IOperTestCaseBase
screamer 0:66f3b5499f7f 22
screamer 0:66f3b5499f7f 23
screamer 0:66f3b5499f7f 24 class IOperTest_TargetID(IOperTestCaseBase):
screamer 0:66f3b5499f7f 25 """ tests related to target_id value
screamer 0:66f3b5499f7f 26 """
screamer 0:66f3b5499f7f 27
screamer 0:66f3b5499f7f 28 def __init__(self, scope=None):
screamer 0:66f3b5499f7f 29 IOperTestCaseBase.__init__(self, scope)
screamer 0:66f3b5499f7f 30 self.TARGET_ID_LEN = 24
screamer 0:66f3b5499f7f 31
screamer 0:66f3b5499f7f 32 def test_target_id_format(self, target_id, target_id_name):
screamer 0:66f3b5499f7f 33 # Expected length == 24, eg. "02400203D94B0E7724B7F3CF"
screamer 0:66f3b5499f7f 34 result = []
screamer 0:66f3b5499f7f 35 target_id_len = len(target_id) if target_id else 0
screamer 0:66f3b5499f7f 36 if target_id_len == self.TARGET_ID_LEN:
screamer 0:66f3b5499f7f 37 result.append((self.PASS, "TARGET_ID_LEN", self.scope, "%s '%s' is %d chars long " % (target_id_name, target_id, target_id_len)))
screamer 0:66f3b5499f7f 38 result.append((self.INFO, "FW_VER_STR", self.scope, "%s Version String is %s.%s.%s " % (target_id_name,
screamer 0:66f3b5499f7f 39 target_id[0:4],
screamer 0:66f3b5499f7f 40 target_id[4:8],
screamer 0:66f3b5499f7f 41 target_id[8:24],
screamer 0:66f3b5499f7f 42 )))
screamer 0:66f3b5499f7f 43 else:
screamer 0:66f3b5499f7f 44 result.append((self.ERROR, "TARGET_ID_LEN", self.scope, "%s '%s' is %d chars long. Expected %d chars" % (target_id_name, target_id, target_id_len, self.TARGET_ID_LEN)))
screamer 0:66f3b5499f7f 45 return result
screamer 0:66f3b5499f7f 46
screamer 0:66f3b5499f7f 47 def test_decode_target_id(self, target_id, target_id_name):
screamer 0:66f3b5499f7f 48 result = []
screamer 0:66f3b5499f7f 49 target_id_len = len(target_id) if target_id else 0
screamer 0:66f3b5499f7f 50 if target_id_len >= 4:
screamer 0:66f3b5499f7f 51 result.append((self.INFO, "FW_VEN_CODE", self.scope, "%s Vendor Code is '%s'" % (target_id_name, target_id[0:2])))
screamer 0:66f3b5499f7f 52 result.append((self.INFO, "FW_PLAT_CODE", self.scope, "%s Platform Code is '%s'" % (target_id_name, target_id[2:4])))
screamer 0:66f3b5499f7f 53 result.append((self.INFO, "FW_VER", self.scope, "%s Firmware Version is '%s'" % (target_id_name, target_id[4:8])))
screamer 0:66f3b5499f7f 54 result.append((self.INFO, "FW_HASH_SEC", self.scope, "%s Hash of secret is '%s'" % (target_id_name, target_id[8:24])))
screamer 0:66f3b5499f7f 55 return result
screamer 0:66f3b5499f7f 56
screamer 0:66f3b5499f7f 57 def test(self, param=None):
screamer 0:66f3b5499f7f 58 result = []
screamer 0:66f3b5499f7f 59 if param:
screamer 0:66f3b5499f7f 60 pass
screamer 0:66f3b5499f7f 61 return result
screamer 0:66f3b5499f7f 62
screamer 0:66f3b5499f7f 63
screamer 0:66f3b5499f7f 64 class IOperTest_TargetID_Basic(IOperTest_TargetID):
screamer 0:66f3b5499f7f 65 """ Basic interoperability tests checking TargetID compliance
screamer 0:66f3b5499f7f 66 """
screamer 0:66f3b5499f7f 67
screamer 0:66f3b5499f7f 68 def __init__(self, scope=None):
screamer 0:66f3b5499f7f 69 IOperTest_TargetID.__init__(self, scope)
screamer 0:66f3b5499f7f 70
screamer 0:66f3b5499f7f 71 def test(self, param=None):
screamer 0:66f3b5499f7f 72 result = []
screamer 0:66f3b5499f7f 73
screamer 0:66f3b5499f7f 74 if param:
screamer 0:66f3b5499f7f 75 result.append((self.PASS, "TARGET_ID", self.scope, "TargetID '%s' found" % param['target_id']))
screamer 0:66f3b5499f7f 76
screamer 0:66f3b5499f7f 77 # Check if target name can be decoded with mbed-ls
screamer 0:66f3b5499f7f 78 if param['platform_name']:
screamer 0:66f3b5499f7f 79 result.append((self.PASS, "TARGET_ID_DECODE", self.scope, "TargetID '%s' decoded as '%s'" % (param['target_id'][0:4], param['platform_name'])))
screamer 0:66f3b5499f7f 80 else:
screamer 0:66f3b5499f7f 81 result.append((self.ERROR, "TARGET_ID_DECODE", self.scope, "TargetID '%s'... not decoded" % (param['target_id'] if param['target_id'] else '')))
screamer 0:66f3b5499f7f 82
screamer 0:66f3b5499f7f 83 # Test for USBID and mbed.htm consistency
screamer 0:66f3b5499f7f 84 if param['target_id_mbed_htm'] == param['target_id_usb_id']:
screamer 0:66f3b5499f7f 85 result.append((self.PASS, "TARGET_ID_MATCH", self.scope, "TargetID (USBID) and TargetID (mbed.htm) match"))
screamer 0:66f3b5499f7f 86 else:
screamer 0:66f3b5499f7f 87 text = "TargetID (USBID) and TargetID (mbed.htm) don't match: '%s' != '%s'" % (param['target_id_usb_id'], param['target_id_mbed_htm'])
screamer 0:66f3b5499f7f 88 result.append((self.WARN, "TARGET_ID_MATCH", self.scope, text))
screamer 0:66f3b5499f7f 89 else:
screamer 0:66f3b5499f7f 90 result.append((self.ERROR, "TARGET_ID", self.scope, "TargetID not found"))
screamer 0:66f3b5499f7f 91 return result
screamer 0:66f3b5499f7f 92
screamer 0:66f3b5499f7f 93 class IOperTest_TargetID_MbedEnabled(IOperTest_TargetID):
screamer 0:66f3b5499f7f 94 """ Basic interoperability tests checking TargetID compliance
screamer 0:66f3b5499f7f 95 """
screamer 0:66f3b5499f7f 96
screamer 0:66f3b5499f7f 97 def __init__(self, scope=None):
screamer 0:66f3b5499f7f 98 IOperTest_TargetID.__init__(self, scope)
screamer 0:66f3b5499f7f 99
screamer 0:66f3b5499f7f 100 def test(self, param=None):
screamer 0:66f3b5499f7f 101 result = []
screamer 0:66f3b5499f7f 102
screamer 0:66f3b5499f7f 103 if param:
screamer 0:66f3b5499f7f 104 # Target ID tests:
screamer 0:66f3b5499f7f 105 result += self.test_target_id_format(param['target_id_usb_id'], "TargetId (USBID)")
screamer 0:66f3b5499f7f 106 result += self.test_target_id_format(param['target_id_mbed_htm'], "TargetId (mbed.htm)")
screamer 0:66f3b5499f7f 107
screamer 0:66f3b5499f7f 108 # Some extra info about TargetID itself
screamer 0:66f3b5499f7f 109 result += self.test_decode_target_id(param['target_id_usb_id'], "TargetId (USBID)")
screamer 0:66f3b5499f7f 110 result += self.test_decode_target_id(param['target_id_mbed_htm'], "TargetId (mbed.htm)")
screamer 0:66f3b5499f7f 111 return result