From 224fee0e1080fa7cd654de240c32c8433bb07cf9 Mon Sep 17 00:00:00 2001 From: Damien George Date: Sat, 15 Nov 2014 20:39:44 +0000 Subject: [PATCH] stmhal: Fix HAL error raising; make test for it. Addresses issue #968. --- stmhal/mphal.c | 2 +- tests/pyb/halerror.py | 15 +++++++++++++++ tests/pyb/halerror.py.exp | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/pyb/halerror.py create mode 100644 tests/pyb/halerror.py.exp diff --git a/stmhal/mphal.c b/stmhal/mphal.c index e8f242051e..7fcd982dcb 100644 --- a/stmhal/mphal.c +++ b/stmhal/mphal.c @@ -16,5 +16,5 @@ const byte mp_hal_status_to_errno_table[4] = { }; NORETURN void mp_hal_raise(HAL_StatusTypeDef status) { - nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, (mp_obj_t)(mp_uint_t)mp_hal_status_to_errno_table[status])); + nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(mp_hal_status_to_errno_table[status]))); } diff --git a/tests/pyb/halerror.py b/tests/pyb/halerror.py new file mode 100644 index 0000000000..1a6bce1a7e --- /dev/null +++ b/tests/pyb/halerror.py @@ -0,0 +1,15 @@ +# test hal errors + +import pyb + +i2c = pyb.I2C(2, pyb.I2C.MASTER) +try: + i2c.recv(1, 1) +except OSError as e: + print(repr(e)) + +can = pyb.CAN(1, pyb.CAN.NORMAL) +try: + can.send('1', 1, timeout=50) +except OSError as e: + print(repr(e)) diff --git a/tests/pyb/halerror.py.exp b/tests/pyb/halerror.py.exp new file mode 100644 index 0000000000..09c9f7ad92 --- /dev/null +++ b/tests/pyb/halerror.py.exp @@ -0,0 +1,2 @@ +OSError(5,) +OSError(116,)