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

TestCaseTestTracer_1.cpp

00001 // 00002 // Copyright 2004 P&P Software GmbH - All Rights Reserved 00003 // 00004 // TestCaseTestTracer_1.cpp 00005 // 00006 // Version 1.1 00007 // Date 18.04.03 00008 // Author A. Pasetti (P&P Software) 00009 00010 #include "TestCaseTestTracer_1.h" 00011 #include "../GeneralInclude/CompilerSwitches.h" 00012 #include "../GeneralInclude/ClassId.h" 00013 #include "../GeneralInclude/Constants.h" 00014 #include "../GeneralInclude/TestCompilerSwitches.h" 00015 #include "../System/DC_TestTracer.h" 00016 #include <stdio.h> 00017 00018 TestCaseTestTracer_1::TestCaseTestTracer_1(void) : 00019 TestCaseGenericSetUp(ID_TESTTRACER*10+1,"TestCaseTestTracer_1") { 00020 return; 00021 } 00022 00023 void TestCaseTestTracer_1::runTestCase(void) { 00024 00025 #ifdef MS_HOST 00026 DC_TestTracer* pTrc = new DC_TestTracer(); 00027 00028 // Dummy tracer should be enabled upon creation 00029 if ( (pTrc->isEnabled() != ENABLED) ) 00030 { setTestResult(TEST_FAILURE, "Test Tracer component should be enabled"); 00031 return; 00032 } 00033 00034 // Send a synch trace signal. 00035 TD_TraceItem item = 0x0001; 00036 pTrc->sendSynchTrace(item); 00037 00038 // Disable the tracer and check status. 00039 pTrc->setEnabled(DISABLED); 00040 if ( (pTrc->isEnabled() != DISABLED) ) 00041 { setTestResult(TEST_FAILURE, "Test Tracer component should be disabled"); 00042 return; 00043 } 00044 00045 // Send a synch trace signal. This should have no effect because the tracer 00046 // is disabled. 00047 item = 0x0011; 00048 pTrc->sendSynchTrace(item); 00049 00050 // Send a new packet trace signal. This should have no effect because the tracer 00051 // is disabled. 00052 TD_TraceItem itemPacket[2]; 00053 itemPacket[0] = 0x0022; 00054 itemPacket[1] = 0x0033; 00055 pTrc->sendPacketTrace(2,itemPacket); 00056 00057 // Enabled the tracer and send a packet trace signal. 00058 pTrc->setEnabled(ENABLED); 00059 itemPacket[0] = 0x0002; 00060 itemPacket[1] = 0x0003; 00061 pTrc->sendPacketTrace(2,itemPacket); 00062 00063 // Close the log file 00064 pTrc->closeLogFile(); 00065 00066 // Re-open the log file and check that the content is as expected 00067 const char* const logFileName = pTrc->getLogFileName(); 00068 FILE* logFile; 00069 if( (logFile = fopen(logFileName,"r")) == pNULL ) 00070 printf( "\nThe file %s could not be opened\n",logFileName); 00071 else 00072 printf( "\nThe file %s was successfully opened\n",logFileName); 00073 int readItem=0; 00074 char s1[81]; // strings to hold the lines read from the log file 00075 char s2[81]; 00076 char s3[81]; 00077 char s4[81]; 00078 char s5[81]; 00079 char s6[81]; 00080 fgets(s1,80,logFile); // read the log file 00081 fgets(s2,80,logFile); 00082 fgets(s3,80,logFile); 00083 fgets(s4,80,logFile); 00084 fgets(s5,80,logFile); 00085 fgets(s6,80,logFile); 00086 char h[81]; // string to hold the line header (to be ignored) 00087 sscanf(s4,"%s %i",&h,&readItem); 00088 if ( readItem != 1 ) // check first trace item written to log file 00089 { setTestResult(TEST_FAILURE, "First item written to log file is wrong"); 00090 return; 00091 } 00092 sscanf(s5,"%s %i",&h,&readItem); 00093 if ( readItem != 2 ) // check second trace item written to log file 00094 { setTestResult(TEST_FAILURE, "Second item written to log file is wrong"); 00095 return; 00096 } 00097 sscanf(s6,"%s %i",&h,&readItem); 00098 if ( readItem != 3 ) // check third trace item written to log file 00099 { setTestResult(TEST_FAILURE, "Third item written to log file is wrong"); 00100 return; 00101 } 00102 #endif 00103 00104 setTestResult(TEST_SUCCESS,"Test Successful"); 00105 return; 00106 }
Copyright 2003 P&P Software GmbH - All Rights Reserved