Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: mbed-os/tools/test/run_icetea/run_icetea_unit_test.py
- Revision:
- 0:8fdf9a60065b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os/tools/test/run_icetea/run_icetea_unit_test.py Wed Oct 10 00:33:53 2018 +0000
@@ -0,0 +1,178 @@
+"""
+Copyright 2018 ARM Limited
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+
+import os
+import sys
+
+ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..",
+ ".."))
+sys.path.insert(0, ROOT)
+
+from tools.run_icetea import find_build_from_build_data, filter_test_by_build_data, filter_test_by_name, \
+ get_application_list, set_allowed_platform
+
+"""
+Unit tests for run_icetea.py
+"""
+
+test_build_data = {
+ 'builds': [
+ {
+ "id": "TEST_APPS-DEVICE-SOCKET_APP",
+ "target_name": "K64F",
+ "toolchain_name": "GCC_ARM",
+ "result": "OK"
+ }
+ ]
+}
+
+
+def test_find_build_from_build_data_empty():
+ assert find_build_from_build_data(build_data={'builds': []}, id="something", target="K64F",
+ toolchain="GCC_ARM") is None
+
+
+def test_find_build_from_build_data_wrong_target():
+ assert find_build_from_build_data(build_data=test_build_data, id="TEST_APPS-DEVICE-SOCKET_APP", target="AAAA",
+ toolchain="GCC_ARM") is None
+
+
+def test_find_build_from_build_data():
+ assert find_build_from_build_data(build_data=test_build_data, id="TEST_APPS-DEVICE-SOCKET_APP", target="K64F",
+ toolchain="GCC_ARM") is not None
+
+
+icetea_json_output = [
+ {
+ "status": "released",
+ "requirements": {
+ "duts": {
+ "1": {
+ "nick": "dut1"
+ },
+ "*": {
+ "count": 1,
+ "application": {
+ "bin": None,
+ "name": "TEST_APPS-device-socket_app"
+ },
+ "type": "hardware"
+ }
+ },
+ "external": {
+ "apps": []
+ }
+ },
+ "name": "UDPSOCKET_BIND_PORT",
+ "filepath": "/Users/test/mbed-os/TEST_APPS/testcases/SOCKET_BIND_PORT.py",
+ "title": "udpsocket open and bind port",
+ "component": [
+ "mbed-os",
+ "netsocket"
+ ],
+ "compatible": {
+ "framework": {
+ "version": ">=1.0.0",
+ "name": "Icetea"
+ },
+ "hw": {
+ "value": True
+ },
+ "automation": {
+ "value": True
+ }
+ },
+ "subtype": "socket",
+ "purpose": "Verify UDPSocket can be created, opened and port binded",
+ "type": "smoke",
+ "sub_type": None
+ }
+]
+
+
+def test_filter_test_by_build_data_when_data_is_empty():
+ assert filter_test_by_build_data(
+ icetea_json_output=icetea_json_output,
+ build_data=None,
+ target="K64F",
+ toolchain="GCC_ARM"
+ ) == icetea_json_output
+
+
+def test_filter_test_by_build_data():
+ temp = filter_test_by_build_data(
+ icetea_json_output=icetea_json_output,
+ build_data=test_build_data,
+ target="K64F",
+ toolchain="GCC_ARM"
+ )
+ assert len(temp) > 0
+
+
+def test_filter_test_by_name():
+ assert len(filter_test_by_name(icetea_json_output, ['UDPSOCKET_BIND_PORT'])) > 0
+
+
+def test_filter_test_by_name_when_not_found():
+ assert filter_test_by_name(icetea_json_output, ['AAA']) == list()
+
+
+def test_filter_test_by_name_when_name_is_empty():
+ assert filter_test_by_name(icetea_json_output, None) == icetea_json_output
+
+
+def test_get_application_list():
+ assert 'TEST_APPS-device-socket_app' in get_application_list(icetea_json_output, ['UDPSOCKET_BIND_PORT'])
+
+
+def test_get_application_list_not_found():
+ assert 'TEST_APPS-device-socket_app' not in get_application_list(icetea_json_output, ['SOMETHING_ELSE'])
+
+
+def test_get_application_list_none():
+ assert 'TEST_APPS-device-socket_app' in get_application_list(icetea_json_output, None)
+
+
+def test_set_allowed_platform_simple():
+ ret = set_allowed_platform({"duts": {}}, "K66F")
+ assert ret['duts']['*']['allowed_platforms'] == ["K66F"]
+
+
+def test_set_allowed_platform_normal():
+ ret = set_allowed_platform({
+ "duts": {
+ "*": {
+ "count": 3,
+ "allowed_platforms": ["K64F"],
+ "application": {"bin": "hex.bin"}
+ },
+ 1: {"application": {"bin": "my_hex.bin"}},
+ 2: {"application": {"bin": "my_hex2.bin"}}
+ }
+ }, "K66F")
+ assert ret['duts']['*']['allowed_platforms'] == ["K66F"]
+
+
+def test_set_allowed_platform_no_changes():
+ temp = {
+ "duts": {
+ "*": {
+ "count": 3,
+ "allowed_platforms": ["K64F"],
+ "application": {"bin": "hex.bin"}
+ },
+ }
+ }
+ assert temp == set_allowed_platform(temp, "K64F")