From 2bd231b84f81e3bc972c694bc8ab2765467af66f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Thu, 26 Dec 2024 00:40:58 +0100 Subject: [PATCH] Fix Makefile dependencies, extend tests --- Makefile | 2 +- terminal_test.go | 32 +++++++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index e7dfe61..79d35e6 100644 --- a/Makefile +++ b/Makefile @@ -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", }, }