summaryrefslogtreecommitdiff
path: root/tests/esp32/check_err_str.py
diff options
context:
space:
mode:
authorThorsten von Eicken <tve@voneicken.com>2020-03-31 16:03:01 -0700
committerDamien George <damien.p.george@gmail.com>2020-04-23 10:59:07 +1000
commit1ae7e0e561134c39471e3000eced33da732b4103 (patch)
treea1d1f7393863cf0fddf8dcae82aabd1e04768971 /tests/esp32/check_err_str.py
parenta177831c46a7e217fed6562510e12183377053f7 (diff)
esp32: Consolidate check_esp_err functions and add IDF error string.
This commit consolidates a number of check_esp_err functions that check whether an ESP-IDF return code is OK and raises an exception if not. The exception raised is an OSError with the error code as the first argument (negative if it's ESP-IDF specific) and the ESP-IDF error string as the second argument. This commit also fixes esp32.Partition.set_boot to use check_esp_err, and uses that function for a unit test.
Diffstat (limited to 'tests/esp32/check_err_str.py')
-rw-r--r--tests/esp32/check_err_str.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/esp32/check_err_str.py b/tests/esp32/check_err_str.py
new file mode 100644
index 000000000..055eecf74
--- /dev/null
+++ b/tests/esp32/check_err_str.py
@@ -0,0 +1,43 @@
+try:
+ from esp32 import Partition as p
+ import micropython
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+# try some vanilla OSError to get std error code
+try:
+ open("this filedoesnotexist", "r")
+ print("FAILED TO RAISE")
+except OSError as e:
+ print(e)
+
+# try to make nvs partition bootable, which ain't gonna work
+part = p.find(type=p.TYPE_DATA)[0]
+fun = p.set_boot
+try:
+ fun(part)
+ print("FAILED TO RAISE")
+except OSError as e:
+ print(e)
+
+# same but with out of memory condition by locking the heap
+exc = "FAILED TO RAISE"
+micropython.heap_lock()
+try:
+ fun(part)
+except OSError as e:
+ exc = e
+micropython.heap_unlock()
+print("exc:", exc) # exc empty due to no memory
+
+# same again but having an emergency buffer
+micropython.alloc_emergency_exception_buf(256)
+exc = "FAILED TO RAISE"
+micropython.heap_lock()
+try:
+ fun(part)
+except Exception as e:
+ exc = e
+micropython.heap_unlock()
+print(exc)