1616
1717 Copyright 2017-2020 Telegram Systems LLP
1818*/
19+ #include < iostream>
1920#include < map>
2021
2122#include " td/utils/Parser.h"
@@ -173,6 +174,14 @@ void TestsRunner::set_stress_flag(bool flag) {
173174 stress_flag_ = flag;
174175}
175176
177+ void TestsRunner::set_pretty_output (bool flag) {
178+ pretty_output_ = flag;
179+ }
180+
181+ bool TestsRunner::use_pretty_output () const {
182+ return pretty_output_;
183+ }
184+
176185void TestsRunner::run_all () {
177186 while (run_all_step ()) {
178187 }
@@ -201,7 +210,11 @@ bool TestsRunner::run_all_step() {
201210 ++state_.it ;
202211 continue ;
203212 }
204- LOG (ERROR) << " Run test " << tag (" name" , name);
213+ if (pretty_output_) {
214+ std::cerr << " Running test " << name << " ..." << std::endl;
215+ } else {
216+ LOG (ERROR) << " Run test " << tag (" name" , name);
217+ }
205218 state_.start = Time::now ();
206219 state_.start_unadjusted = Time::now_unadjusted ();
207220 state_.is_running = true ;
@@ -214,12 +227,22 @@ bool TestsRunner::run_all_step() {
214227 auto passed = Time::now () - state_.start ;
215228 auto real_passed = Time::now_unadjusted () - state_.start_unadjusted ;
216229 if (test_failed_) {
217- LOG (ERROR) << " FAILED in " << format::as_time (passed);
230+ if (pretty_output_) {
231+ std::cerr << " FAIL" << std::endl;
232+ failed_tests_.push_back (name);
233+ } else {
234+ LOG (ERROR) << " FAILED in " << format::as_time (passed);
235+ }
218236 any_test_failed_ = true ;
219- } else if (real_passed + 1e-9 > passed) {
220- LOG (ERROR) << format::as_time (passed);
221237 } else {
222- LOG (ERROR) << format::as_time (passed) << " real[" << format::as_time (real_passed) << " ]" ;
238+ if (pretty_output_) {
239+ std::cerr << " PASS in " << (PSTRING () << format::as_time (passed)) << std::endl;
240+ ++passed_tests_;
241+ } else if (real_passed + 1e-9 > passed) {
242+ LOG (ERROR) << format::as_time (passed);
243+ } else {
244+ LOG (ERROR) << format::as_time (passed) << " real[" << format::as_time (real_passed) << " ]" ;
245+ }
223246 }
224247 if (regression_tester_) {
225248 regression_tester_->save_db ();
@@ -231,6 +254,16 @@ bool TestsRunner::run_all_step() {
231254
232255 auto ret = state_.it != state_.end ;
233256 if (!ret) {
257+ if (pretty_output_) {
258+ if (failed_tests_.empty ()) {
259+ std::cerr << passed_tests_ << " test(s) passed" << std::endl;
260+ } else {
261+ std::cerr << failed_tests_.size () << " test(s) failed:" << std::endl;
262+ for (auto &failed_name : failed_tests_) {
263+ std::cerr << " - " << failed_name << std::endl;
264+ }
265+ }
266+ }
234267 state_ = State ();
235268 test_failed_ = false ;
236269 }
0 commit comments