wi_size_t wi_terminal_lookup_size(wi_terminal_t *terminal) { wi_string_t *width, *height; struct winsize win; if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) >= 0) return wi_make_size(win.ws_col, win.ws_row); width = wi_getenv(WI_STR("COLUMNS")); height = wi_getenv(WI_STR("LINES")); if(width && height) return wi_make_size(wi_string_integer(width), wi_string_integer(height)); return wi_make_size(0, 0); }
void wi_test_system(void) { wi_array_t *backtrace; WI_TEST_ASSERT_TRUE(wi_user_id() >= 0, ""); WI_TEST_ASSERT_TRUE(wi_string_length(wi_user_name()) > 0, ""); WI_TEST_ASSERT_TRUE(wi_string_length(wi_user_home()) > 0, ""); WI_TEST_ASSERT_TRUE(wi_group_id() >= 0, ""); WI_TEST_ASSERT_TRUE(wi_string_length(wi_group_name()) > 0, ""); WI_TEST_ASSERT_TRUE(wi_page_size() > 0, ""); backtrace = wi_backtrace(); if(backtrace) { WI_TEST_ASSERT_TRUE(wi_array_count(backtrace) > 0, ""); WI_TEST_ASSERT_NOT_EQUALS(wi_string_index_of_string(wi_array_components_joined_by_string(backtrace, WI_STR("\n")), WI_STR("test"), 0), WI_NOT_FOUND, ""); } WI_TEST_ASSERT_TRUE(wi_string_length(wi_getenv(WI_STR("HOME"))) > 0, ""); }