diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2024-12-26 00:40:58 +0100 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2024-12-26 00:40:58 +0100 |
commit | 2bd231b84f81e3bc972c694bc8ab2765467af66f (patch) | |
tree | cdb370bbf50e23171100c9f7601433a9a33eeac9 | |
parent | fb291b6deface105667604fdaa8f6d8fcf4936b2 (diff) | |
download | acid-2bd231b84f81e3bc972c694bc8ab2765467af66f.tar.gz acid-2bd231b84f81e3bc972c694bc8ab2765467af66f.tar.xz acid-2bd231b84f81e3bc972c694bc8ab2765467af66f.zip |
Fix Makefile dependencies, extend tests
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | terminal_test.go | 32 |
2 files changed, 30 insertions, 4 deletions
@@ -5,7 +5,7 @@ version = dev outputs = acid acid.1 all: $(outputs) -acid: acid.go +acid: acid.go terminal.go go build -ldflags "-X 'main.projectVersion=$(version)'" -o $@ acid.1: acid.adoc asciidoctor -b manpage -a release-version=$(version) -o $@ acid.adoc || \ diff --git a/terminal_test.go b/terminal_test.go index d3fcf45..bec14bf 100644 --- a/terminal_test.go +++ b/terminal_test.go @@ -2,13 +2,39 @@ package main import "testing" -// TODO(p): Add a lot more test cases. +// This could be way more extensive, but we're not aiming for perfection. var tests = []struct { push, want string }{ { - "\x1bc\x1b[?7l\x1b[2J\x1b[0mSeaBIOS\r", - "SeaBIOS\n", + // Escaping and UTF-8. + "\x03\x1bž\bř", + "^C^[ř\n", + }, + { + // Several kinds of sequences to be ignored. + "\x1bc\x1b[?7l\x1b[2J\x1b[0;1mSeaBIOS\rTea", + "TeaBIOS\n", + }, + { + // New origin and absolute positioning. + "Line 1\n\x1bcWine B\nFine 3\x1b[1;6H2\x1b[HL\nL", + "Line 1\nLine 2\nLine 3\n", + }, + { + // In-line positioning (without corner cases). + "A\x1b[CB\x1b[2C?\x1b[DC\x1b[2D\b->", + "A B->C\n", + }, + { + // Up and down. + "\nB\x1bMA\v\vC" + "\x1b[4EG" + "\x1b[FF" + "\x1b[2FD" + "\x1b[EE", + " A\nB\nC\nD\nE\nF\nG\n", + }, + { + // In-line erasing. + "1234\b\b\x1b[K\n5678\b\b\x1b[0K\n" + "abcd\b\b\x1b[1K\nefgh\x1b[2K", + "12\n56\n cd\n\n", }, } |