|  | OpenMS
    2.6.0
    | 
 
 
  
  
 
Go to the documentation of this file.
   48 #include <OpenMS/OpenMSConfig.h> 
   49 #include <OpenMS/config.h> 
   66 #define stdcout std::cout 
   82       validate(
const std::vector<std::string>& file_names);
 
   85       std::string OPENMS_DLLAPI
 
   89       inline bool OPENMS_DLLAPI
 
   96       inline bool OPENMS_DLLAPI
 
  103       inline bool OPENMS_DLLAPI
 
  110       inline bool OPENMS_DLLAPI
 
  117       template <
typename T>
 
  131                       const char* number_1_stringified,
 
  132                       bool number_1_is_realtype, 
Int number_1_written_digits,
 
  133                       long double number_2, 
const char* number_2_stringified,
 
  134                       bool , 
Int number_2_written_digits);
 
  149                         const std::string& string_1,
 
  150                         const char* string_1_stringified,
 
  151                         const std::string& string_2,
 
  152                         const char* string_2_stringified);
 
  157                       const std::string& string_1,
 
  158                       const char* string_1_stringified,
 
  159                       const std::string& string_2,
 
  160                       const char* string_2_stringified);
 
  169                     const std::string& filename_2);
 
  182                    const std::string& whitelist);
 
  191       extern OPENMS_DLLAPI 
double ratio;
 
  200       extern OPENMS_DLLAPI 
double absdiff;
 
  206       extern OPENMS_DLLAPI 
int verbose;
 
  212       extern OPENMS_DLLAPI 
bool test;
 
  227       extern OPENMS_DLLAPI std::string 
test_name;
 
  245       extern OPENMS_DLLAPI std::ifstream 
infile;
 
  269       extern OPENMS_DLLAPI 
bool newline;
 
  271       template <
typename T1, 
typename T2>
 
  273       testEqual(
const char* , 
int line, 
const T1& expression_1,
 
  274                 const char* expression_1_stringified,
 
  275                 const T2& expression_2,
 
  276                 const char* expression_2_stringified)
 
  280         this_test = bool(expression_1 == T1(expression_2));
 
  286             stdcout << 
" +  line " << line << 
":  TEST_EQUAL(" 
  287                       << expression_1_stringified << 
',' 
  288                       << expression_2_stringified << 
"): got '" << expression_1
 
  289                       << 
"', expected '" << expression_2 << 
"'\n";
 
  293             stdcout << 
" -  line " << line << 
":  TEST_EQUAL(" 
  294                       << expression_1_stringified << 
',' 
  295                       << expression_2_stringified << 
"): got '" << expression_1
 
  296                       << 
"', expected '" << expression_2 << 
"'\n";
 
  302       template <
typename T1, 
typename T2>
 
  305                    const char* expression_1_stringified,
 
  306                    const T2& expression_2,
 
  307                    const char* expression_2_stringified)
 
  311         this_test = !(expression_1 == T1(expression_2));
 
  317             stdcout << 
" +  line " << line << 
":  TEST_NOT_EQUAL(" 
  318                       << expression_1_stringified << 
',' 
  319                       << expression_2_stringified << 
"): got '" << expression_1
 
  320                       << 
"', forbidden is '" << expression_2 << 
"'\n";
 
  324             stdcout << 
" -  line " << line << 
":  TEST_NOT_EQUAL(" 
  325                       << expression_1_stringified << 
',' 
  326                       << expression_2_stringified << 
"): got '" << expression_1
 
  327                       << 
"', forbidden is '" << expression_2 << 
"'\n";
 
  392 #define START_TEST(class_name, version)                                                  \ 
  393   int main(int argc, char** argv)                                                        \ 
  395     OpenMS::UInt64 seed = 2453440375;                                                     \ 
  396     OpenMS::UniqueIdGenerator::setSeed(seed);                                             \ 
  397     TEST::version_string = version;                                                       \ 
  402         << "This is " << argv[0] << ", the test program for the\n"                          \ 
  403         << # class_name " class.\n"                                                         \ 
  405                       "On successful operation it returns PASSED,\n"                      \ 
  406                       "otherwise FAILED is printed.\n";                                   \ 
  426   catch (::OpenMS::Exception::BaseException& e)                                           \ 
  428     TEST::this_test = false;                                                              \ 
  429     TEST::test = false;                                                                   \ 
  430     TEST::all_tests = false;                                                              \ 
  432       TEST::initialNewline();                                                             \ 
  433       stdcout << "Error: Caught unexpected OpenMS exception of type '"                  \ 
  436       if ((e.getLine() > 0) && std::strcmp(e.getFile(), ""))                       \ 
  438         stdcout << " thrown in line " << e.getLine() << " of file '" << e.getFile()     \ 
  439                   << "' in function '" << e.getFunction() << "'";                         \ 
  441       stdcout << " - Message: " << e.what() << std::endl;                               \ 
  445   catch (std::exception& e)                                                               \ 
  447     TEST::this_test = false;                                                              \ 
  448     TEST::test = false;                                                                   \ 
  449     TEST::all_tests = false;                                                              \ 
  451       TEST::initialNewline();                                                             \ 
  452       stdcout << "Error: Caught unexpected std::exception" << std::endl;                \ 
  453       stdcout << " - Message: " << e.what() << std::endl;                               \ 
  459     TEST::this_test = false;                                                              \ 
  460     TEST::test = false;                                                                   \ 
  461     TEST::all_tests = false;                                                              \ 
  463       TEST::initialNewline();                                                             \ 
  464       stdcout << "Error: Caught unidentified and unexpected exception - No message."    \ 
  469   if (!TEST::validate(TEST::tmp_file_list))                                               \ 
  471     TEST::all_tests = false;                                                              \ 
  474   if (!TEST::all_tests)                                                                   \ 
  476     stdcout << "FAILED" << std::endl;                                                   \ 
  477     if (TEST::add_message != "") stdcout << "Message: "                                 \ 
  478                                            << TEST::add_message                           \ 
  480     stdcout << "Failed lines: ";                                                        \ 
  481     for (OpenMS::Size i = 0; i < TEST::failed_lines_list.size(); ++i)                     \ 
  483       stdcout << TEST::failed_lines_list[i] << " ";                                     \ 
  485     stdcout << std::endl;                                                               \ 
  491     for (OpenMS::Size i = 0; i < TEST::tmp_file_list.size(); ++i)                         \ 
  493       if (!OpenMS::File::remove(TEST::tmp_file_list[i]))                                  \ 
  495         stdcout << "Warning: unable to remove temporary file '"                         \ 
  496                   << TEST::tmp_file_list[i]                                               \ 
  501     stdcout << "PASSED";                                                                \ 
  502     if (TEST::add_message != "") stdcout << " (" << TEST::add_message << ")";           \ 
  503     stdcout << std::endl;                                                               \ 
  530 #define START_SECTION(name_of_test)                                                       \ 
  532   TEST::newline = false;                                                                  \ 
  533   TEST::test_name = # name_of_test;                                                       \ 
  534   TEST::test_count = 0;                                                                   \ 
  535   TEST::start_section_line = __LINE__;                                                    \ 
  536   stdcout << "checking " << TEST::test_name << " ... " << std::flush;                   \ 
  567 #define END_SECTION                                                                       \ 
  571   catch (::OpenMS::Exception::BaseException& e)                                           \ 
  573     TEST::this_test = false;                                                              \ 
  574     TEST::test = false;                                                                   \ 
  575     TEST::all_tests = false;                                                              \ 
  577       TEST::initialNewline();                                                             \ 
  578       stdcout << "Error: Caught unexpected exception of type '" << e.getName() << "'";  \ 
  579       if ((e.getLine() > 0) && (std::strcmp(e.getFile(), "") != 0))                       \ 
  581         stdcout << " thrown in line " << e.getLine() << " of file '" << e.getFile()     \ 
  582                   << "' in function '" << e.getFunction() << "'";                         \ 
  584       stdcout << " - Message: " << e.what() << std::endl;                               \ 
  588   catch (std::exception& e)                                                               \ 
  590     TEST::this_test = false;                                                              \ 
  591     TEST::test = false;                                                                   \ 
  592     TEST::all_tests = false;                                                              \ 
  594       TEST::initialNewline();                                                             \ 
  595       stdcout << "Error: Caught std::exception" << std::endl;                           \ 
  596       stdcout << " - Message: " << e.what() << std::endl;                               \ 
  602     TEST::this_test = false;                                                              \ 
  603     TEST::test = false;                                                                   \ 
  604     TEST::all_tests = false;                                                              \ 
  606       TEST::initialNewline();                                                             \ 
  607       stdcout << "Error: Caught unidentified and unexpected exception - No message."    \ 
  611   TEST::all_tests = TEST::all_tests && TEST::test;                                        \ 
  615       stdcout << ": passed" << std::endl;                                               \ 
  619       stdcout << ": failed" << std::endl;                                               \ 
  623   if (TEST::test_count == 0)                                                              \ 
  625     bool destructor = false;                                                              \ 
  626     for (OpenMS::Size i = 0; i != TEST::test_name.size(); ++i)                            \ 
  628       if (TEST::test_name[i] == '~')                                                      \ 
  634     if (!destructor) stdcout << "Warning: no subtests performed in '"                   \ 
  641   stdcout << std::endl; 
  664 #define TEST_EQUAL(a, b) TEST::testEqual(__FILE__, __LINE__, (a), (# a), (b), (# b)); 
  677 #define TEST_NOT_EQUAL(a, b) TEST::testNotEqual(__FILE__, __LINE__, (a), (# a), (b), (# b)); 
  691 #define TEST_STRING_EQUAL(a, b) TEST::testStringEqual(__FILE__, __LINE__, (a), (# a), (b), (# b)); 
  707 #define TEST_FILE_EQUAL(filename, templatename)                                           \ 
  709     ++TEST::test_count;                                                                   \ 
  710     TEST::test_line = __LINE__;                                                           \ 
  712     TEST::equal_files = true;                                                             \ 
  713     TEST::infile.open(filename, std::ios::in);                                            \ 
  714     TEST::templatefile.open(templatename, std::ios::in);                                  \ 
  716     if (TEST::infile.good() && TEST::templatefile.good())                                 \ 
  718       std::string TEST_FILE__template_line;                                               \ 
  719       std::string TEST_FILE__line;                                                        \ 
  721       while (TEST::infile.good() && TEST::templatefile.good())                            \ 
  723         TEST::templatefile.getline(TEST::line_buffer, 65535);                             \ 
  724         TEST_FILE__template_line = TEST::line_buffer;                                     \ 
  725         TEST::infile.getline(TEST::line_buffer, 65535);                                   \ 
  726         TEST_FILE__line = TEST::line_buffer;                                              \ 
  728         TEST::equal_files &= (TEST_FILE__template_line == TEST_FILE__line);               \ 
  729         if (TEST_FILE__template_line != TEST_FILE__line)                                  \ 
  732             TEST::initialNewline();                                                       \ 
  733             stdcout << "   TEST_FILE_EQUAL: line mismatch:\n    got:      '"            \ 
  734                       << TEST_FILE__line << "'\n    expected: '"                          \ 
  735                       << TEST_FILE__template_line << "'\n";                               \ 
  742       TEST::equal_files = false;                                                          \ 
  744         TEST::initialNewline();                                                           \ 
  745         stdcout << " +  line "                                                          \ 
  747                   << ": TEST_FILE_EQUAL("                                                 \ 
  751         stdcout << ") : " << " cannot open file: \"";                                   \ 
  752         if (!TEST::infile.good())                                                         \ 
  754           stdcout << filename << "\" (input file) ";                                    \ 
  756         if (!TEST::templatefile.good())                                                   \ 
  758           stdcout << templatename << "\" (template file) ";                             \ 
  764     TEST::infile.close();                                                                 \ 
  765     TEST::templatefile.close();                                                           \ 
  766     TEST::infile.clear();                                                                 \ 
  767     TEST::templatefile.clear();                                                           \ 
  769     TEST::this_test = TEST::equal_files;                                                  \ 
  770     TEST::test = TEST::test && TEST::this_test;                                           \ 
  772       TEST::initialNewline();                                                             \ 
  773       if (TEST::this_test)                                                                \ 
  775         stdcout << " +  line "                                                          \ 
  777                   << ": TEST_FILE_EQUAL("                                                 \ 
  785         stdcout << " -  line "                                                          \ 
  787                   << ": TEST_FILE_EQUAL("                                                 \ 
  791                   << "): false (different files: "                                        \ 
  796         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
  816 #define TEST_REAL_SIMILAR(a, b) TEST::testRealSimilar(__FILE__, __LINE__, (a), (# a), TEST::isRealType(a), writtenDigits(a), (b), (# b), TEST::isRealType(b), writtenDigits(b)); 
  833 #define TEST_STRING_SIMILAR(a, b) TEST::testStringSimilar(__FILE__, __LINE__, (a), (# a), (b), (# b)); 
  849 #define TEST_FILE_SIMILAR(a, b)                                                           \ 
  851     ++TEST::test_count;                                                                   \ 
  852     TEST::test_line = __LINE__;                                                           \ 
  853     TEST::this_test = TEST::isFileSimilar((a), (b));                                      \ 
  854     TEST::test = TEST::test && TEST::this_test;                                           \ 
  856       TEST::initialNewline();                                                             \ 
  857       if (TEST::this_test)                                                                \ 
  859         stdcout << " +  line " << __LINE__                                              \ 
  860                   << ":  TEST_FILE_SIMILAR(" # a "," # b "):  absolute: "                       \ 
  861                   << precisionWrapper(TEST::absdiff)                                            \ 
  863                   << precisionWrapper(TEST::absdiff_max_allowed)                                \ 
  865                   << precisionWrapper(TEST::ratio)                                              \ 
  867                   << precisionWrapper(TEST::ratio_max_allowed)                                  \ 
  869         stdcout << "message: \n";                                                       \ 
  870         stdcout << TEST::fuzzy_message;                                                 \ 
  874         stdcout << " -  line " << TEST::test_line <<                                    \ 
  875           ": TEST_FILE_SIMILAR(" # a "," # b ") ...    -\n";                                \ 
  876         stdcout << "message: \n";                                                       \ 
  877         stdcout << TEST::fuzzy_message;                                                 \ 
  878         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
  895 #define TOLERANCE_RELATIVE(a)                                                             \ 
  896   TEST::ratio_max_allowed = (a);                                                          \ 
  898     TEST::initialNewline();                                                               \ 
  899     stdcout << " +  line " << __LINE__ <<                                               \ 
  900       ":  TOLERANCE_RELATIVE(" <<     TEST::ratio_max_allowed <<                            \ 
  901       ")   (\"" # a "\")\n";                                                     \ 
  915 #define TOLERANCE_ABSOLUTE(a)                                                             \ 
  916   TEST::absdiff_max_allowed = (a);                                                        \ 
  918     TEST::initialNewline();                                                               \ 
  919     stdcout << " +  line " << __LINE__ <<                                               \ 
  920       ":  TOLERANCE_ABSOLUTE(" <<     TEST::absdiff_max_allowed   <<                        \ 
  921       ")   (\"" # a "\")\n";                                                              \ 
  929 #define WHITELIST(a) TEST::setWhitelist(__FILE__, __LINE__, (a)); 
  943 #define TEST_EXCEPTION(exception_type, command)                                           \ 
  945     ++TEST::test_count;                                                                   \ 
  946     TEST::test_line = __LINE__;                                                           \ 
  947     TEST::exception = 0;                                                                  \ 
  952     catch (exception_type&)                                                                \ 
  954       TEST::exception = 1;                                                                \ 
  956     catch (::OpenMS::Exception::BaseException& e)                                          \ 
  958       TEST::exception = 2;                                                                \ 
  959       TEST::exception_name = e.getName();                                                 \ 
  963       TEST::exception = 3;                                                                \ 
  965     TEST::this_test = (TEST::exception == 1);                                             \ 
  966     TEST::test = TEST::test && TEST::this_test;                                           \ 
  969       TEST::initialNewline();                                                             \ 
  970       switch (TEST::exception)                                                            \ 
  973         stdcout << " -  line " << TEST::test_line <<                                    \ 
  974           ":  TEST_EXCEPTION(" # exception_type "," # command                               \ 
  975           "): no exception thrown!\n";                                                    \ 
  976         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
  979         stdcout << " +  line " << TEST::test_line <<                                    \ 
  980           ":  TEST_EXCEPTION(" # exception_type "," # command                               \ 
  984         stdcout << " -  line " << TEST::test_line <<                                    \ 
  985           ":  TEST_EXCEPTION(" # exception_type "," # command                               \ 
  986           "): wrong exception thrown!  \""                                                  \ 
  987                   << TEST::exception_name << "\"\n";                                     \ 
  988         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
  991         stdcout << " -  line " << TEST::test_line <<                                    \ 
  992           ":  TEST_EXCEPTION(" # exception_type "," # command                               \ 
  993           "): wrong exception thrown!\n";                                                 \ 
  994         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
 1011 #ifdef OPENMS_ASSERTIONS 
 1012 #define TEST_PRECONDITION_VIOLATED(command) TEST_EXCEPTION(Exception::Precondition, command); 
 1014 #define TEST_PRECONDITION_VIOLATED(command) STATUS("TEST_PRECONDITION_VIOLATED(" # command ")  -  skipped"); 
 1028 #ifdef OPENMS_ASSERTIONS 
 1029 #define TEST_POSTCONDITION_VIOLATED(command) TEST_EXCEPTION(Exception::Postcondition, command); 
 1031 #define TEST_POSTCONDITION_VIOLATED(command) STATUS("TEST_POSTCONDITION_VIOLATED(" # command ")  -  skipped"); 
 1051 #define TEST_EXCEPTION_WITH_MESSAGE(exception_type, command, message)                     \ 
 1053     ++TEST::test_count;                                                                   \ 
 1054     TEST::test_line = __LINE__;                                                           \ 
 1055     TEST::exception = 0;                                                                  \ 
 1060     catch (exception_type& et)                                                             \ 
 1062       if (std::string(et.getMessage()) != std::string(message))                           \ 
 1064         TEST::exception = 4;                                                              \ 
 1065         TEST::exception_message = et.getMessage();                                        \ 
 1067       else TEST::exception = 1;                                                           \ 
 1069     catch (::OpenMS::Exception::BaseException& e)                                          \ 
 1071       TEST::exception = 2;                                                                \ 
 1072       TEST::exception_name = e.getName();                                                 \ 
 1076       TEST::exception = 3;                                                                \ 
 1078     TEST::this_test = (TEST::exception == 1);                                             \ 
 1079     TEST::test = TEST::test && TEST::this_test;                                           \ 
 1082       TEST::initialNewline();                                                             \ 
 1083       switch (TEST::exception)                                                            \ 
 1086         stdcout << " -  line " << TEST::test_line <<                                    \ 
 1087           ":  TEST_EXCEPTION_WITH_MESSAGE(" # exception_type "," # command ", " # message   \ 
 1088           "): no exception thrown!\n";                                                    \ 
 1089         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
 1093         stdcout << " +  line " << TEST::test_line <<                                    \ 
 1094           ":  TEST_EXCEPTION_WITH_MESSAGE(" # exception_type "," # command ", " # message   \ 
 1098         stdcout << " -  line " << TEST::test_line <<                                    \ 
 1099           ":  TEST_EXCEPTION_WITH_MESSAGE(" # exception_type "," # command ", " # message   \ 
 1100           "): wrong exception thrown!  \"" <<                                               \ 
 1101           TEST::exception_name << "\"\n";                                                \ 
 1102         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
 1105         stdcout << " -  line " << TEST::test_line <<                                    \ 
 1106           ":  TEST_EXCEPTION_WITH_MESSAGE(" # exception_type "," # command ", " # message   \ 
 1107           "): wrong exception thrown!\n";                                                 \ 
 1108         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
 1111         stdcout << " -  line " << TEST::test_line <<                                    \ 
 1112           ":  TEST_EXCEPTION_WITH_MESSAGE(" # exception_type "," # command ", " # message   \ 
 1113           "): exception has wrong message: got '" <<                                        \ 
 1114           TEST::exception_message <<                                                        \ 
 1115           "', expected '" <<                                                                \ 
 1116           (message) << "'\n";                                                                 \ 
 1117         TEST::failed_lines_list.push_back(TEST::test_line);                               \ 
 1138 #define NEW_TMP_FILE(filename)                                                            \ 
 1140     filename = TEST::tmpFileName(__FILE__, __LINE__);                                     \ 
 1141     TEST::tmp_file_list.push_back(filename);                                              \ 
 1143       TEST::initialNewline();                                                             \ 
 1144       stdcout << "    creating new temporary filename '"                                \ 
 1159 #define ABORT_IF(condition)                                                               \ 
 1163       TEST::initialNewline();                                                             \ 
 1164       stdcout << " -  line " <<  __LINE__ <<                                            \ 
 1165         ":  ABORT_IF(" # condition "):  TEST ABORTED\n";                                  \ 
 1166       TEST::failed_lines_list.push_back(TEST::test_line);                                 \ 
 1188 #define STATUS(message)                                                                   \ 
 1190     TEST::initialNewline();                                                               \ 
 1191     stdcout << "    line "                                                              \ 
 1207 #define ADD_MESSAGE(message)                                                              \ 
 1208   TEST::add_message = message; 
 1219 #define NOT_TESTABLE                                                                      \ 
 1220   TEST::test_count = 1; 
  
bool this_test
Status of last elementary test.
bool isRealType(float)
This overload returns true; float is a floating point type.
Definition: ClassTest.h:90
bool validate(const std::vector< std::string > &file_names)
Validates the given files against the XML schema (if available)
bool isFileSimilar(const std::string &filename_1, const std::string &filename_2)
Compare files using absdiff_max_allowed and ratio_max_allowed.
void testStringEqual(const char *file, int line, const std::string &string_1, const char *string_1_stringified, const std::string &string_2, const char *string_2_stringified)
used by TEST_STRING_EQUAL
char line_buffer[65536]
(A buffer for one line from a file. Used by TEST_FILE_EQUAL.)
double absdiff_max
Maximum difference of numbers observed so far, see TOLERANCE_ABSOLUTE.
double ratio_max_allowed
Maximum ratio of numbers allowed, see TOLERANCE_RELATIVE.
std::string fuzzy_message
Last message from a fuzzy comparison. Written by isRealSimilar(), testStringSimilar(),...
double ratio
Recent ratio of numbers, see TOLERANCE_RELATIVE.
std::ifstream templatefile
Template (correct) file used by TEST_FILE_EQUAL.
int exception
(Used by various macros. Indicates a rough category of the exception being caught....
void testStringSimilar(const char *file, int line, const std::string &string_1, const char *string_1_stringified, const std::string &string_2, const char *string_2_stringified)
Compare strings using absdiff_max_allowed and ratio_max_allowed.
bool newline
(Flags whether a new line is in place, depending on context and verbosity setting....
std::string exception_name
(Used by various macros. Stores the "name" of the exception, if applicable.)
int start_section_line
Line where current subsection started.
void testNotEqual(const char *, int line, const T1 &expression_1, const char *expression_1_stringified, const T2 &expression_2, const char *expression_2_stringified)
Definition: ClassTest.h:304
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
std::string add_message
See ADD_MESSAGE.
void testRealSimilar(const char *file, int line, long double number_1, const char *number_1_stringified, bool number_1_is_realtype, Int number_1_written_digits, long double number_2, const char *number_2_stringified, bool, Int number_2_written_digits)
Compare floating point numbers using absdiff_max_allowed and ratio_max_allowed.
Class to hold strings, numeric values, lists of strings and lists of numeric values.
Definition: DataValue.h:56
std::vector< std::string > tmp_file_list
List of tmp file names (these will be cleaned up, see NEW_TMP_FILE)
void setWhitelist(const char *const, const int line, const std::string &whitelist)
set the whitelist_
void initialNewline()
make sure we have a newline before results from first subtest
std::vector< UInt > failed_lines_list
List of all failed lines for summary at the end of the test.
double ratio_max
Maximum ratio of numbers observed so far, see TOLERANCE_RELATIVE.
double absdiff
Recent absolute difference of numbers, see TOLERANCE_ABSOLUTE.
bool isRealSimilar(long double number_1, long double number_2)
used by testRealSimilar()
void testEqual(const char *, int line, const T1 &expression_1, const char *expression_1_stringified, const T2 &expression_2, const char *expression_2_stringified)
Definition: ClassTest.h:273
std::string tmpFileName(const std::string &file, int line)
Creates a temporary file name from the test name and the line.
std::string exception_message
(Used by various macros. Stores the "message" of the exception, if applicable.)
bool equal_files
(A variable used by TEST_FILE_EQUAL)
bool test
Status of the current subsection.
int verbose
Verbosity level ( "-v" is 1 and "-V" is 2 )
const char * version_string
Version string supplied with START_TEST.
bool all_tests
Status of the whole test.
double absdiff_max_allowed
Maximum absolute difference of numbers allowed, see TOLERANCE_ABSOLUTE.
int test_count
Counter for the number of elementary tests within the current subsection.
#define stdcout
Provide a point of redirection for testing the test macros, see ClassTest_test.cpp.
Definition: ClassTest.h:66
void printWithPrefix(const std::string &text, const int marked=-1)
print the text, each line gets a prefix, the marked line number gets a special prefix
Namespace for class tests.
Definition: ClassTest.h:74
std::string test_name
Name of current subsection.
int test_line
Line of current elementary test.
std::ifstream infile
Questionable file tested by TEST_FILE_EQUAL.