From 9c21c114aaec6f6cb5f033b4cfe5afc3b715ae2d Mon Sep 17 00:00:00 2001 From: sowle Date: Thu, 17 Oct 2019 14:03:17 +0300 Subject: [PATCH] performance tests: free space check test improvements --- tests/performance_tests/free_space_check.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/performance_tests/free_space_check.h b/tests/performance_tests/free_space_check.h index 16ea0afb..f7fb2d5c 100644 --- a/tests/performance_tests/free_space_check.h +++ b/tests/performance_tests/free_space_check.h @@ -49,6 +49,7 @@ void free_space_check() boost::filesystem::path current_path("."); size_t counter = 0; + bool need_backspace = false; while (true) { std::this_thread::sleep_for(std::chrono::milliseconds( 900 )); @@ -59,26 +60,37 @@ void free_space_check() { // free space is ok counter = (counter + 1) % 4; - std::cout << '\b'; + if (need_backspace) + std::cout << '\b'; std::cout << ( counter == 0 ? '*' : counter == 1 ? '\\' : counter == 2 ? '|' : '/' ); + std::cout << std::flush; + need_backspace = true; continue; } // free space is not ok! - LOG_PRINT_YELLOW("free space available: " << si.available, LOG_LEVEL_0); + LOG_PRINT_YELLOW("1) fs::space() : available: " << si.available << ", free: " << si.free << ", capacity: " << si.capacity, LOG_LEVEL_0); #ifdef WIN32 output = exec("dir"); #else output = exec("df -h"); #endif LOG_PRINT_YELLOW(output, LOG_LEVEL_0); + + // try one again asap + si = fs::space(current_path); + LOG_PRINT_YELLOW("2) fs::space() : available: " << si.available << ", free: " << si.free << ", capacity: " << si.capacity, LOG_LEVEL_0); + + need_backspace = false; } catch (std::exception& e) { LOG_ERROR("failed to determine free space: " << e.what()); + need_backspace = false; } catch (...) { LOG_ERROR("failed to determine free space: unknown exception"); + need_backspace = false; } }