diff --git a/vt.c b/vt.c index b9a4f4b0..b34f8fbe 100644 --- a/vt.c +++ b/vt.c @@ -412,6 +412,29 @@ action_collect(struct terminal *term, uint8_t c) LOG_WARN("only four private/intermediate characters supported"); } +UNITTEST +{ + struct terminal term = {.vt = {.private = 0}}; + uint32_t expected = ' '; + action_collect(&term, ' '); + xassert(term.vt.private == expected); + + expected |= '/' << 8; + action_collect(&term, '/'); + xassert(term.vt.private == expected); + + expected |= '<' << 16; + action_collect(&term, '<'); + xassert(term.vt.private == expected); + + expected |= '?' << 24; + action_collect(&term, '?'); + xassert(term.vt.private == expected); + + action_collect(&term, '?'); + xassert(term.vt.private == expected); +} + static void action_esc_dispatch(struct terminal *term, uint8_t final) {