Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MsgOStreamServiceValidate Class Reference

#include <MsgOStreamServiceValidate.h>

List of all members.

Public Member Functions

 MsgOStreamServiceValidate ()
 ~MsgOStreamServiceValidate ()
bool RunAllTests ()

Private Member Functions

bool TestMsgStandardOStream ()
bool TestMsgFileOStream ()
bool TestMsgOStreamService ()
bool TestMsgCustonStream ()


Constructor & Destructor Documentation

MsgOStreamServiceValidate::MsgOStreamServiceValidate  ) 
 

Definition at line 96 of file MsgOStreamServiceValidate.cxx.

00096 {}

MsgOStreamServiceValidate::~MsgOStreamServiceValidate  ) 
 

Definition at line 100 of file MsgOStreamServiceValidate.cxx.

00100 {}


Member Function Documentation

bool MsgOStreamServiceValidate::RunAllTests  ) 
 

Definition at line 332 of file MsgOStreamServiceValidate.cxx.

References TestMsgCustonStream(), TestMsgFileOStream(), TestMsgOStreamService(), and TestMsgStandardOStream().

Referenced by main(), and MsgServiceValidate::RunAllTests().

00333 {
00334   bool passed = true;
00335 
00336   passed &= this->TestMsgStandardOStream();
00337   passed &= this->TestMsgFileOStream();
00338   passed &= this->TestMsgOStreamService();
00339   passed &= this->TestMsgCustonStream();
00340   
00341   return passed;
00342 }

bool MsgOStreamServiceValidate::TestMsgCustonStream  )  [private]
 

Definition at line 280 of file MsgOStreamServiceValidate.cxx.

References MsgOStreamService::GetStream(), MsgOStreamService::Instance(), and MsgOStream::Os().

Referenced by RunAllTests().

00281 {
00282 //======================================================================
00283 // Test if we can use the custon stream defined at the top of this file
00284 //======================================================================
00285   int passed = 1;
00286   MsgOStream *s1a, *s1b;
00287   MsgOStream *s2a, *s2b;
00288 
00289   cout << "===== testMsgCustomStream\n";
00290   
00291   s1a = MsgOStreamService::Instance()->GetStream("G4cout");
00292   if (s1a == 0) {
00293     cout << "testMsgCustonStream:: Failed to get stream s1a G4cout\n";
00294     passed &= 0;
00295   }
00296   s1b = MsgOStreamService::Instance()->GetStream("G4cout");
00297   if (s1b == 0) {
00298     cout << "testMsgCustonStream:: Failed to get stream s1b G4cout\n";
00299     passed &=0;
00300   }
00301   if (s1a != s1b) {
00302     cout << "testMsgCustonStream:: Failed to get same stream for G4cout\n";
00303     passed &=0;
00304   }
00305 
00306   s2a = MsgOStreamService::Instance()->GetStream("G4cerr");
00307   if (s2a == 0) {
00308     cout << "testMsgCustonStream:: Failed to get stream s2a G4cerr\n";
00309     passed &=0;
00310   }
00311   s2b = MsgOStreamService::Instance()->GetStream("G4cerr");
00312   if (s2b == 0) {
00313     cout << "testMsgCustonStream:: Failed to get stream s2a G4cerr\n";
00314     passed &=0;
00315   }
00316   if (s2a != s2b) {
00317     cout << "testMsgCustonStream:: Failed to get same stream for G4cerr\n";
00318     passed &=0;
00319   }
00320 
00321   s1a->Os() << "This is a message to G4cout\n";
00322   s1b->Os() << "This is a message to G4cerr\n";
00323   
00324   if (!passed) {
00325     cout << "===== testMsgCustomStream FAILED!!\n";
00326   }
00327   return passed;
00328 }

bool MsgOStreamServiceValidate::TestMsgFileOStream  )  [private]
 

Definition at line 164 of file MsgOStreamServiceValidate.cxx.

References MsgOStream::AddReference(), MsgFileOStream::Close(), MsgOStream::Flush(), MsgFileOStream::GetName(), MsgOStream::GetNreference(), MsgFileOStream::Os(), and MsgOStream::SubtractReference().

Referenced by RunAllTests().

00165 {
00166   int passed = 1;
00167   MsgFileOStream msgFile1("osfile1.txt", ios::out);
00168   MsgFileOStream msgFile2("osfile2.txt", ios::out);
00169   MsgFileOStream msgFile3("osfile3.txt", ios::out);
00170 
00171   cout << "===== testMsgFileOStream()\n";
00172   cout << "Test creators...";
00173   if (&msgFile1==0 || &msgFile2==0 || &msgFile3==0) {
00174     passed &= 0;
00175     cout << "Failed!!!\n";
00176   }
00177   else {
00178     cout << "Done.\n";
00179   }
00180 
00181   msgFile1.Os() << "This message should go to osfile1.txt\n";
00182   msgFile2.Os() << "This message should go to osfile2.txt\n";
00183   msgFile3.Os() << "This message should go to osfile3.txt\n";
00184   cout << "Check files osfile[123].txt for correct output\n";
00185 
00186   cout << "Check names : "
00187        << "<msgFile1 : " << msgFile1.GetName() << "> "
00188        << "<msgFile2 : " << msgFile2.GetName() << "> "
00189        << "<msgFile3 : " << msgFile3.GetName() << ">\n";
00190 
00191   cout << "Check reference counting:\n";
00192   cout << " Add      " << msgFile1.AddReference() << "\n";
00193   cout << " Add      " << msgFile1.AddReference() << "\n";
00194   if (msgFile1.GetNreference() != 2) {
00195     cout << "Failed!!";
00196     passed &= 0;
00197   }
00198   cout << " Subtract " << msgFile1.SubtractReference() << "\n";
00199   cout << " Subtract " << msgFile1.SubtractReference() << "\n";
00200   if (msgFile1.GetNreference() != 0) {
00201     cout << "Failed!!";
00202     passed &= 0;
00203   }
00204 
00205   msgFile1.Flush();
00206   msgFile2.Flush();
00207   msgFile3.Flush();
00208 
00209   msgFile1.Close();
00210   msgFile2.Close();
00211   msgFile3.Close();
00212 
00213   return passed;
00214 }

bool MsgOStreamServiceValidate::TestMsgOStreamService  )  [private]
 

Definition at line 218 of file MsgOStreamServiceValidate.cxx.

References MsgOStream::GetNreference(), MsgOStreamService::GetStream(), and MsgOStreamService::Instance().

Referenced by RunAllTests().

00219 {
00220   int passed = 1;
00221   MsgOStreamService* msgOStreamService;
00222   MsgOStreamService* msgOStreamService2;
00223   MsgOStream* s1;
00224   MsgOStream* s2;
00225   MsgOStream* s3;
00226   MsgOStream* s4;
00227   
00228   msgOStreamService  = MsgOStreamService::Instance();
00229   msgOStreamService2 = MsgOStreamService::Instance();
00230   
00231   cout << "Check singleton behavior...";
00232   if (msgOStreamService != msgOStreamService2) {
00233     cout << "Singleton Behavior Failed\n";
00234     passed &= 0;
00235   }
00236   else {
00237     cout << "Done.\n";
00238   }
00239   
00240   cout << "Check stream fetching for cout...";
00241   s1 = msgOStreamService->GetStream("cout");
00242   s2 = msgOStreamService->GetStream("cout");
00243   if (s1 != s2) {
00244     cout << "Failed to give identical streams for cout\n";
00245     passed &= 0;
00246   }
00247   else {
00248     cout << "Done.\n";
00249   }
00250 
00251   cout << "Check stream fetching for afile.txt...";
00252   s3 = msgOStreamService->GetStream("afile.txt");
00253   s4 = msgOStreamService->GetStream("afile.txt");
00254   if (s3 != s4) {
00255     cout << "Failed to give identical streams for afile.txt\n";
00256     passed &= 0;
00257   }
00258   else {
00259     cout << "Done.\n";
00260   }
00261 
00262   cout << "Check reference counting...";
00263   if (s1->GetNreference() != 2) {
00264     cout << " N = " 
00265          << s1->GetNreference();
00266     cout << "Failed to count references for cout\n";
00267   }
00268   if (s3->GetNreference() != 2) {
00269     cout << " N = " 
00270          << s3->GetNreference();
00271     cout << "Failed to count references for afile.txt\n";
00272   }
00273   cout << "Done.\n";
00274   
00275   return passed;
00276 }

bool MsgOStreamServiceValidate::TestMsgStandardOStream  )  [private]
 

Definition at line 104 of file MsgOStreamServiceValidate.cxx.

References MsgOStream::AddReference(), MsgStandardOStream::Close(), MsgOStream::Flush(), MsgStandardOStream::GetName(), MsgOStream::GetNreference(), MsgStandardOStream::Os(), and MsgOStream::SubtractReference().

Referenced by RunAllTests().

00105 {
00106   int passed = 1;
00107   MsgStandardOStream msgCout("cout");
00108   MsgStandardOStream msgCerr("cerr");
00109   MsgStandardOStream msgClog("clog");
00110 
00111   cout << "===== testMsgStandardOStream()\n";
00112   cout << "Test creators...";
00113   if (&msgCout==0 || &msgCerr==0 || &msgClog==0) {
00114     passed &= 0;
00115     cout << "Failed!!!\n";
00116   }
00117   else {
00118     cout << "Done.\n";
00119   }
00120 
00121   cout << "Test output streams are correct...";
00122   if ((&msgCout.Os()==&cout) && 
00123       (&msgCerr.Os()==&cerr) && 
00124       (&msgClog.Os()==&clog)) {
00125     cout << "Done.\n";
00126   }
00127   else {
00128     cout << "Failed!!!\n";
00129     passed &= 0;
00130   }
00131 
00132   cout << "Check names : "
00133        << "<msgCout : " << msgCout.GetName() << "> "
00134        << "<msgCerr : " << msgCerr.GetName() << "> "
00135        << "<msgClog : " << msgClog.GetName() << ">\n";
00136 
00137   cout << "Check reference counting:\n";
00138   cout << " Add      " << msgCout.AddReference() << "\n";
00139   cout << " Add      " << msgCout.AddReference() << "\n";
00140   if (msgCout.GetNreference() != 2) {
00141     cout << "Failed!!";
00142     passed &= 0;
00143   }
00144   cout << " Subtract " << msgCout.SubtractReference() << "\n";
00145   cout << " Subtract " << msgCout.SubtractReference() << "\n";
00146   if (msgCout.GetNreference() != 0) {
00147     cout << "Failed!!";
00148     passed &= 0;
00149   }
00150 
00151   msgCout.Flush();
00152   msgCerr.Flush();
00153   msgClog.Flush();
00154 
00155   msgCout.Close();
00156   msgCerr.Close();
00157   msgClog.Close();
00158 
00159   return passed;
00160 }


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:37 2010 for loon by  doxygen 1.3.9.1