summaryrefslogtreecommitdiff
path: root/tests/extmod/framebuf_scroll.py
diff options
context:
space:
mode:
authorTPReal <tpreal@gmail.com>2022-11-26 13:22:34 +0100
committerDamien George <damien@micropython.org>2022-12-09 16:47:08 +1100
commit002f54ab4edcc334b9641148dde94a6d7673c0fd (patch)
treea4bfb44e129013abcff93fb7d4fc845124409bc1 /tests/extmod/framebuf_scroll.py
parentb042fd5120e5c0b0ef2b5bebf2c00aa12e5a0fb0 (diff)
tests/extmod/framebuf_scroll: Add tests for FrameBuffer scrolling.
Includes a currently-failing test of scrolling by at least the size of the buffer.
Diffstat (limited to 'tests/extmod/framebuf_scroll.py')
-rw-r--r--tests/extmod/framebuf_scroll.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/extmod/framebuf_scroll.py b/tests/extmod/framebuf_scroll.py
new file mode 100644
index 000000000..db9b6ea1e
--- /dev/null
+++ b/tests/extmod/framebuf_scroll.py
@@ -0,0 +1,45 @@
+try:
+ import framebuf
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+
+def printbuf():
+ print("--8<--")
+ bytes_per_row = w // 2
+ for y in range(h):
+ for x in range(bytes_per_row):
+ print("%02x" % buf[(x + y * bytes_per_row)], end="")
+ print()
+ print("-->8--")
+
+
+w = 10
+h = 10
+buf = bytearray(w * h // 2)
+fbuf = framebuf.FrameBuffer(buf, w, h, framebuf.GS4_HMSB)
+
+
+def prepare_buffer():
+ fbuf.fill(0)
+ fbuf.rect(2, 0, 6, 10, 0x07, True)
+ fbuf.rect(0, 2, 10, 6, 0x01, True)
+
+
+prepare_buffer()
+printbuf()
+
+fbuf.scroll(5, -1)
+printbuf()
+
+prepare_buffer()
+fbuf.scroll(-5, 5)
+printbuf()
+
+prepare_buffer()
+# Scrolling by at least the size of buffer, no change to buffer.
+fbuf.scroll(15, 7)
+fbuf.scroll(10, -1)
+fbuf.scroll(1, -10)
+printbuf()