diff --git a/tests/extmod/framebuf_scroll.py b/tests/extmod/framebuf_scroll.py new file mode 100644 index 0000000000..db9b6ea1e9 --- /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 0000000000..7e99b275da --- /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--