Fennel: CalcTestInfo< T > Class Template Reference (original) (raw)
Inheritance diagram for CalcTestInfo< T >:

| Public Member Functions | |
|---|---|
| CalcTestInfo (StandardTypeDescriptorOrdinal type) | |
| virtual | ~CalcTestInfo () |
| void | add (string desc, T *pV, TProgramCounter pc, uint line=0) |
| void | add (string desc, T v, TProgramCounter pc, uint line=0) |
| void | addRegister (string desc, TProgramCounter pc) |
| void | addWarning (const char *msg, TProgramCounter pc) |
| void | add (string desc, const char *error, TProgramCounter pc, uint line=0) |
| void | setTupleData (TupleData &tuple) |
| virtual bool | checkResult (Calculator &calc, TupleData &outputTuple) |
| Public Attributes | |
| vector< RegisterTestInfo< T > > | mOutRegInfo |
| deque< CalcMessage > | mWarnings |
| StandardTypeDescriptorOrdinal | typeOrdinal |
Detailed Description
template
class CalcTestInfo< T >
Definition at line 164 of file CalcAssemblerTest.cpp.
Constructor & Destructor Documentation
Member Function Documentation
Implements CalcChecker.
Definition at line 225 of file CalcAssemblerTest.cpp.
References Calculator::getOutputRegisterDescriptor(), CalcTestInfo< T >::mOutRegInfo, CalcTestInfo< T >::mWarnings, Calculator::mWarnings, and CalcTestInfo< T >::typeOrdinal.
00226 {
00227 TupleDescriptor outputTupleDesc = calc.getOutputRegisterDescriptor();
00228
00229 assert(outputTupleDesc.size() == outputTuple.size());
00230
00231
00232 if (outputTupleDesc.size() != mOutRegInfo.size()) {
00233 ostringstream message("");
00234 message << "Mismatch of output register number: Expected ";
00235 message << outputTupleDesc.size();
00236 message << ", Actual " << mOutRegInfo.size();
00237 BOOST_ERROR(message.str());
00238 return false;
00239 }
00240
00241
00242 for (uint i = 0; i < outputTupleDesc.size(); i++) {
00243 if (outputTupleDesc[i].pTypeDescriptor->getOrdinal() !=
00244 static_castStoredTypeDescriptor::Ordinal(typeOrdinal))
00245 {
00246 ostringstream message("");
00247 message << "Type ordinal mismatch: Expected ";
00248 message << outputTupleDesc[i].pTypeDescriptor->getOrdinal();
00249 message << ", Actual";
00250 message << static_castStoredTypeDescriptor::Ordinal(
00251 typeOrdinal);
00252 BOOST_ERROR(message.str());
00253 return false;
00254 }
00255
00256 if ([i].checkTupleDatum(outputTuple[i])) {
00257 ostringstream message("");
00258 message << "Tuple datum mismatch: Register " << i
00259 << " should be " << mOutRegInfo[i].toString()
00260 << ".";
00261 BOOST_ERROR(message.str());
00262 return false;
00263 }
00264 }
00265
00266
00267 if (calc.mWarnings.size() != mWarnings.size()) {
00268 ostringstream message("");
00269 message << "# of warnings should be " << mWarnings.size()
00270 << " not " << calc.mWarnings.size();
00271 BOOST_ERROR(message.str());
00272 return false;
00273 }
00274
00275 for (uint i = 0; i < mWarnings.size(); i++) {
00276 if (calc.mWarnings[i].pc != mWarnings[i].pc) {
00277 ostringstream message("");
00278 message << "Warning expected at PC=" << mWarnings[i].pc
00279 << ". Got warning at PC="
00280 << calc.mWarnings[i].pc;
00281 BOOST_ERROR(message.str());
00282 return false;
00283 }
00284
00285 if (strcmp(calc.mWarnings[i].str, mWarnings[i].str)) {
00286 ostringstream message("");
00287 message << "Message should be |" << mWarnings[i].str
00288 << "| not |" << calc.mWarnings[i].str << "| at PC="
00289 << mWarnings[i].pc ;
00290 BOOST_ERROR(message.str());
00291 return false;
00292 }
00293 }
00294
00295 return true;
00296 }
Member Data Documentation
The documentation for this class was generated from the following file:
- /home/pub/open/dev/fennel/calctest/CalcAssemblerTest.cpp
