From 0e87bc7be69c60581324e23163f14a269d33fcc7 Mon Sep 17 00:00:00 2001
From: Peter Hinch <peter@hinch.me.uk>
Date: Fri, 9 Oct 2015 07:57:17 +0100
Subject: [PATCH] tests: In pyb RTC tests, check wakeup register values.

---
 tests/pyb/rtc.py     | 29 ++++++++++++++++++++++++++++-
 tests/pyb/rtc.py.exp | 15 +++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/tests/pyb/rtc.py b/tests/pyb/rtc.py
index 001553ac3..09af52629 100644
--- a/tests/pyb/rtc.py
+++ b/tests/pyb/rtc.py
@@ -1,4 +1,4 @@
-import pyb
+import pyb, stm
 from pyb import RTC
 
 rtc = RTC()
@@ -49,3 +49,30 @@ set_and_print_calib(-511)
 
 # restore existing calibration value
 rtc.calibration(cal_tmp)
+
+# Check register settings for wakeup
+def set_and_print_wakeup(ms):
+    try:
+        rtc.wakeup(ms)
+        wucksel = stm.mem32[stm.RTC + stm.RTC_CR] & 7
+        wut = stm.mem32[stm.RTC + stm.RTC_WUTR] & 0xffff
+    except ValueError:
+        wucksel = -1
+        wut = -1
+    print((wucksel, wut))
+
+set_and_print_wakeup(0)
+set_and_print_wakeup(1)
+set_and_print_wakeup(4000)
+set_and_print_wakeup(4001)
+set_and_print_wakeup(8000)
+set_and_print_wakeup(8001)
+set_and_print_wakeup(16000)
+set_and_print_wakeup(16001)
+set_and_print_wakeup(32000)
+set_and_print_wakeup(32001)
+set_and_print_wakeup(0x10000*1000)
+set_and_print_wakeup(0x10001*1000)
+set_and_print_wakeup(0x1ffff*1000)
+set_and_print_wakeup(0x20000*1000)
+set_and_print_wakeup(0x20001*1000) # exception
diff --git a/tests/pyb/rtc.py.exp b/tests/pyb/rtc.py.exp
index d8d5e0f0a..7d3aaf6af 100644
--- a/tests/pyb/rtc.py.exp
+++ b/tests/pyb/rtc.py.exp
@@ -23,3 +23,18 @@
 -123
 -510
 -511
+(3, 0)
+(3, 15)
+(3, 65535)
+(2, 32775)
+(2, 65535)
+(1, 32771)
+(1, 65535)
+(0, 32769)
+(0, 65535)
+(4, 31)
+(4, 65535)
+(6, 0)
+(6, 65534)
+(6, 65535)
+(-1, -1)
-- 
GitLab