Files Classes Functions Hierarchy
#include <projunittests.h>
Public Member Functions | |
| stringc | xml () const |
| Output object as xml. | |
| int | eval () |
| Look for testscript*.txt files and interpret as unit tests. | |
| stringc | report () const |
Public Attributes | |
| projprint | terminal |
| Print mode. | |
| vector< projunittest > | vi |
| Collected unit tests. | |
Static Public Attributes | |
| static string | fileresults = "unittestsreport.txt" |
| Locally saved xml. | |
| static string | tempfile = "/tmp/proj829849.txt" |
Convention testscript*.txt
Definition at line 17 of file projunittests.h.
| int projunittests::eval | ( | ) |
Look for testscript*.txt files and interpret as unit tests.
Definition at line 40 of file projunittests.cpp.
References projprint::changestate(), systemcalls::eval(), exitint::exitstatus, fileresults, projprint::issilent(), projprint::issummary(), systemcalls::output(), tokenizer::readaslinesgeneral(), report(), tokenizer::reset(), filestring::serializeInverse(), tempfile, terminal, vi, and xml().
Referenced by mkerrorstest::test03().
00041 { 00042 string line("ls testscript*.txt"); 00043 systemcalls sys(line,tempfile); 00044 exitstatus=sys.eval(); 00045 tokenizer tk; 00046 tk.readaslinesgeneral(sys.output()); 00047 for ( tk.reset(); !tk; ++tk) 00048 vi.push_back( projunittest(tk()) ); 00049 00050 int status; 00051 for (uint i=0; i<vi.size(); ++i) 00052 { 00053 if (terminal.issummary()==false) 00054 vi[i].terminal.changestate(terminal); 00055 else 00056 vi[i].terminal.setsilent(); 00057 status=vi[i].eval(); 00058 if ((exitstatus==0)&&(status!=0)) 00059 exitstatus=status; 00060 } 00061 00062 // Write the xml file. 00063 string s2=xml(); 00064 bool res; 00065 res=filestring::serializeInverse(fileresults,s2); 00066 if (res==false) 00067 cout << "error: could not write file " + fileresults << endl; 00068 assert(res); 00069 if ((res==false)&&(exitstatus==0)) 00070 exitstatus=1; 00071 00072 if (!terminal.issilent()) 00073 cout << report(); 00074 flush(cout); 00075 00076 return exitstatus; 00077 }
| stringc projunittests::report | ( | ) | const |
Definition at line 105 of file projunittests.cpp.
References endln, exitint::isvalidtext(), and vi.
Referenced by eval().
00106 { 00107 string s1; 00108 s1 = "Report unit tests " + isvalidtext() + endln; 00109 00110 for (uint i=0; i<vi.size(); ++i) 00111 { 00112 s1 += vi[i].report(); 00113 } 00114 00115 return s1; 00116 }
| stringc projunittests::xml | ( | ) | const |
Output object as xml.
Definition at line 23 of file projunittests.cpp.
References exitint::exitstatus, stringtag(), stringtrim(), and vi.
Referenced by eval().
00024 { 00025 string s1; 00026 string s2 = stringtag(exitstatus,"exitstatus"); 00027 s1 += stringtag(s2,"status"); 00028 00029 string time = stringtrim( systemcallseval("echo `date +%Y`-`date +%m`-`date +%d`\\ `date +%k`:`date +%M`:`date +%S`").output() ); 00030 s1 += stringtag(time,"time"); 00031 00032 string s3; 00033 for (uint i=0; i<vi.size(); ++i) 00034 s3 += vi[i].xml(); 00035 s1 += stringtag(s3,"vi"); 00036 00037 return stringtag(s1,"unittestsreport"); 00038 }
string projunittests::fileresults = "unittestsreport.txt" [static] |
Locally saved xml.
Definition at line 35 of file projunittests.h.
Referenced by eval(), and modulereport::reset().
string projunittests::tempfile = "/tmp/proj829849.txt" [static] |
Print mode.
Definition at line 22 of file projunittests.h.
Referenced by eval(), and mkerrorstest::test03().
| vector< projunittest > projunittests::vi |
1.5.8