summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/extmod/framebuf_scroll.py45
-rw-r--r--tests/extmod/framebuf_scroll.py.exp48
2 files changed, 93 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()
diff --git a/tests/extmod/framebuf_scroll.py.exp b/tests/extmod/framebuf_scroll.py.exp
new file mode 100644
index 000000000..7e99b275d
--- /dev/null
+++ b/tests/extmod/framebuf_scroll.py.exp
@@ -0,0 +1,48 @@
+--8<--
+0077777700
+0077777700
+1111111111
+1111111111
+1111111111
+1111111111
+1111111111
+1111111111
+0077777700
+0077777700
+-->8--
+--8<--
+0077700777
+0077711111
+1111111111
+1111111111
+1111111111
+1111111111
+1111111111
+1111100777
+0077700777
+0077777700
+-->8--
+--8<--
+0077777700
+0077777700
+1111111111
+1111111111
+1111111111
+7770011111
+7770011111
+1111111111
+1111177700
+1111177700
+-->8--
+--8<--
+0077777700
+0077777700
+1111111111
+1111111111
+1111111111
+1111111111
+1111111111
+1111111111
+0077777700
+0077777700
+-->8--