File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -27,7 +27,8 @@ export namespace CppUtils::Terminal
2727 [[nodiscard]] inline auto getTerminalSize() -> Container::Size2
2828 {
2929 auto windowsSize = winsize{};
30- ioctl(STDOUT_FILENO, TIOCGWINSZ, std::addressof(windowsSize));
30+ if (ioctl(STDOUT_FILENO, TIOCGWINSZ, std::addressof(windowsSize)) == -1)
31+ return Container::Size2{0, 0};
3132 return Container::Size2{
3233 static_cast<std::size_t>(windowsSize.ws_col),
3334 static_cast<std::size_t>(windowsSize.ws_row)};
Original file line number Diff line number Diff line change @@ -9,6 +9,24 @@ namespace CppUtils::UnitTest::Terminal::Canvas
99 using namespace std::literals;
1010 using namespace std::chrono_literals;
1111
12+ suite.addTest("Canvas with 0x0 size", [&] {
13+ auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{0, 0}};
14+ canvas.fill('.');
15+ canvas.print();
16+ });
17+
18+ suite.addTest("Canvas with 0 height", [&] {
19+ auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{10, 0}};
20+ canvas.fill('.');
21+ canvas.print();
22+ });
23+
24+ suite.addTest("Canvas with 0 width", [&] {
25+ auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{0, 10}};
26+ canvas.fill('.');
27+ canvas.print();
28+ });
29+
1230 suite.addTest("Size", [&] {
1331 {
1432 auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{10, 5}};
You can’t perform that action at this time.
0 commit comments