From 0551f6e8b955bd081d69afd121ef2e84f17a0189 Mon Sep 17 00:00:00 2001 From: Brian Daniels Date: Thu, 21 May 2015 15:17:17 -0500 Subject: [PATCH 1/5] Added tests for the WFI instruction --- libraries/tests/mbed/wfi/main.cpp | 18 +++++++++++++ workspace_tools/host_tests/__init__.py | 2 ++ workspace_tools/host_tests/wfi_auto.py | 37 ++++++++++++++++++++++++++ workspace_tools/tests.py | 9 +++++-- 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 libraries/tests/mbed/wfi/main.cpp create mode 100644 workspace_tools/host_tests/wfi_auto.py diff --git a/libraries/tests/mbed/wfi/main.cpp b/libraries/tests/mbed/wfi/main.cpp new file mode 100644 index 0000000000..775872c650 --- /dev/null +++ b/libraries/tests/mbed/wfi/main.cpp @@ -0,0 +1,18 @@ +#include "mbed.h" +#include "test_env.h" + +int main(void) +{ + MBED_HOSTTEST_TIMEOUT(15); + MBED_HOSTTEST_SELECT(wfi_auto); + MBED_HOSTTEST_DESCRIPTION(WFI correct behavior); + MBED_HOSTTEST_START("MBED_36"); + + + int count = 0; + + while(1) { + printf("%d\r\n", count++); + __WFI(); + } +} diff --git a/workspace_tools/host_tests/__init__.py b/workspace_tools/host_tests/__init__.py index cae0e20908..3e3f10f55c 100644 --- a/workspace_tools/host_tests/__init__.py +++ b/workspace_tools/host_tests/__init__.py @@ -30,6 +30,7 @@ from tcpecho_server_auto import TCPEchoServerTest from udpecho_server_auto import UDPEchoServerTest from tcpecho_client_auto import TCPEchoClientTest from udpecho_client_auto import UDPEchoClientTest +from wfi_auto import WFITest # Populate registry with supervising objects HOSTREGISTRY = HostRegistry() @@ -46,6 +47,7 @@ HOSTREGISTRY.register_host_test("tcpecho_server_auto", TCPEchoServerTest()) HOSTREGISTRY.register_host_test("udpecho_server_auto", UDPEchoServerTest()) HOSTREGISTRY.register_host_test("tcpecho_client_auto", TCPEchoClientTest()) HOSTREGISTRY.register_host_test("udpecho_client_auto", UDPEchoClientTest()) +HOSTREGISTRY.register_host_test("wfi_auto", WFITest()) ############################################################################### # Functional interface for test supervisor registry diff --git a/workspace_tools/host_tests/wfi_auto.py b/workspace_tools/host_tests/wfi_auto.py new file mode 100644 index 0000000000..b51beca13f --- /dev/null +++ b/workspace_tools/host_tests/wfi_auto.py @@ -0,0 +1,37 @@ +""" +mbed SDK +Copyright (c) 2011-2013 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 sys +import uuid +import time +from sys import stdout + +class WFITest(): + + def test(self, selftest): + result = True + c = selftest.mbed.serial_readline() + if c is None or c.strip() != "0": + return selftest.RESULT_IO_SERIAL + + # Wait 10 seconds to allow serial prints (indicating failure) + selftest.mbed.set_serial_timeout(10) + + # If no characters received, pass the test + result = not selftest.mbed.serial_readline() + + return selftest.RESULT_SUCCESS if result else selftest.RESULT_FAILURE diff --git a/workspace_tools/tests.py b/workspace_tools/tests.py index 815c292035..1f8060f4d3 100644 --- a/workspace_tools/tests.py +++ b/workspace_tools/tests.py @@ -66,7 +66,7 @@ Wiring: * analog_pot (AnalogIn): * Arduino headers: (A0, A1) - + * SD (SPI): * LPC1*: (mosi=p11 , miso=p12 , sclk=p13 , cs=p14 ) * KL25Z: (mosi=PTD2, miso=PTD3, sclk=PTD1, cs=PTD0) @@ -579,7 +579,12 @@ TESTS = [ "automated": True, "duration": 10, }, - + { + "id": "MBED_36", "description": "WFI correct behavior", + "source_dir": join(TEST_DIR, "mbed", "wfi"), + "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], + "automated": True + }, # CMSIS RTOS tests { From 1cb4afc60b8e4260e20617b35d5811e934117bb5 Mon Sep 17 00:00:00 2001 From: Brian Daniels Date: Fri, 22 May 2015 10:16:05 -0500 Subject: [PATCH 2/5] Returns IO_FAIL when inital output is incorrect instead of IO_SERIAL --- workspace_tools/host_tests/wfi_auto.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workspace_tools/host_tests/wfi_auto.py b/workspace_tools/host_tests/wfi_auto.py index b51beca13f..5f9e211548 100644 --- a/workspace_tools/host_tests/wfi_auto.py +++ b/workspace_tools/host_tests/wfi_auto.py @@ -25,9 +25,13 @@ class WFITest(): def test(self, selftest): result = True c = selftest.mbed.serial_readline() - if c is None or c.strip() != "0": + + if c is None return selftest.RESULT_IO_SERIAL + if c.strip() != "0": + return selftest.RESULT_IO_FAIL + # Wait 10 seconds to allow serial prints (indicating failure) selftest.mbed.set_serial_timeout(10) From 12a708f8b5f09943219fad44d408a2297dd7fcda Mon Sep 17 00:00:00 2001 From: Brian Daniels Date: Tue, 26 May 2015 10:24:44 -0500 Subject: [PATCH 3/5] Fixed return status of test --- workspace_tools/host_tests/wfi_auto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace_tools/host_tests/wfi_auto.py b/workspace_tools/host_tests/wfi_auto.py index 5f9e211548..3c5d10c716 100644 --- a/workspace_tools/host_tests/wfi_auto.py +++ b/workspace_tools/host_tests/wfi_auto.py @@ -30,7 +30,7 @@ class WFITest(): return selftest.RESULT_IO_SERIAL if c.strip() != "0": - return selftest.RESULT_IO_FAIL + return selftest.RESULT_FAILURE # Wait 10 seconds to allow serial prints (indicating failure) selftest.mbed.set_serial_timeout(10) From 17335f493569458f1447ec01ffd7242debed1a7f Mon Sep 17 00:00:00 2001 From: Brian Daniels Date: Mon, 1 Jun 2015 12:09:35 -0500 Subject: [PATCH 4/5] Fixed syntax error --- workspace_tools/host_tests/wfi_auto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace_tools/host_tests/wfi_auto.py b/workspace_tools/host_tests/wfi_auto.py index 3c5d10c716..63b3b3c760 100644 --- a/workspace_tools/host_tests/wfi_auto.py +++ b/workspace_tools/host_tests/wfi_auto.py @@ -26,7 +26,7 @@ class WFITest(): result = True c = selftest.mbed.serial_readline() - if c is None + if c == None: return selftest.RESULT_IO_SERIAL if c.strip() != "0": From a417bc4114f202b35fb9fbda654882397138b03c Mon Sep 17 00:00:00 2001 From: Brian Daniels Date: Mon, 1 Jun 2015 12:16:37 -0500 Subject: [PATCH 5/5] Added host test info --- workspace_tools/host_tests/wfi_auto.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/workspace_tools/host_tests/wfi_auto.py b/workspace_tools/host_tests/wfi_auto.py index 63b3b3c760..a62c432068 100644 --- a/workspace_tools/host_tests/wfi_auto.py +++ b/workspace_tools/host_tests/wfi_auto.py @@ -23,19 +23,23 @@ from sys import stdout class WFITest(): def test(self, selftest): - result = True c = selftest.mbed.serial_readline() if c == None: + selftest.notify("HOST: No output detected") return selftest.RESULT_IO_SERIAL if c.strip() != "0": + selftest.notify("HOST: Unexpected output. Expected '0' but received '%s'" % c.strip()) return selftest.RESULT_FAILURE # Wait 10 seconds to allow serial prints (indicating failure) selftest.mbed.set_serial_timeout(10) # If no characters received, pass the test - result = not selftest.mbed.serial_readline() - - return selftest.RESULT_SUCCESS if result else selftest.RESULT_FAILURE + if not selftest.mbed.serial_readline(): + selftest.notify("HOST: No further output detected") + return selftest.RESULT_SUCCESS + else: + selftest.notify("HOST: Extra output detected") + return selftest.RESULT_FAILURE