takashi kadono / Mbed OS Nucleo446_SSD1331

Dependencies:   ssd1331

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")