mity / acutest

Simple header-only C/C++ unit testing facility.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make the output adapt to terminal size

mity opened this issue · comments

Make the output, especially as generated by the macros TEST_CHECK(), TEST_MSG() and TEST_DUMP(), automatically adapt to the current terminal size, so that it looks good in a reasonably small terminal window but can use effectively more space if the terminal window is big.

This should involve:

  1. Explore what API is available for the purpose on the platform of your choice.
  2. A pre-processor magic to enable the new platform-specific code only on the given platform.
  3. Breaking the long outputs into multiple lines, depending on the width of the terminal.
  4. And still respect the current indentation level, as set via test_line_indent__().

I think this is mostly getenv("COLUMNS") and set a handler for SIGWINCH?

Actually, so far I never did anything like that. But yes, I think so. For Unix/Posix platforms, at least.

I am also not sure whether tracking SIGWINCH is worth the added complexity for something of Acutest's nature. Reading $COLUMNS during initialization might be good enough.