@@ -71,16 +71,24 @@ cAppliBenchAnswer::cAppliBenchAnswer(bool HasBench,double aTime) :
7171/* */
7272/* ================================================ */
7373
74- cParamExeBench::cParamExeBench (const std::string & aPattern,const std::string &aBugKey,int aLevInit,bool Show) :
75- mInsideFunc (false ),
76- mLevInit (aLevInit),
77- mCurLev (mLevInit ),
78- mShow (Show),
79- mDemoTest (false ),
80- mNbExe (0 ),
81- mName (aPattern),
82- mPattern (AllocRegex(aPattern)),
83- mBugKey (aBugKey)
74+ cParamExeBench::cParamExeBench
75+ (
76+ const std::string & aPattern,
77+ const std::string & aPatRefut,
78+ const std::string &aBugKey,
79+ int aLevInit,
80+ bool Show
81+ ) :
82+ mInsideFunc (false ),
83+ mLevInit (aLevInit),
84+ mCurLev (mLevInit ),
85+ mShow (Show),
86+ mDemoTest (false ),
87+ mNbExe (0 ),
88+ mName (aPattern),
89+ mPattern (AllocRegex(aPattern)),
90+ mPatternRefut (AllocRegex(aPatRefut)),
91+ mBugKey (aBugKey)
8492{
8593}
8694
@@ -93,7 +101,9 @@ bool cParamExeBench::NewBench(const std::string & aName,bool ExactMatch)
93101 mVAllBugKeys .push_back (std::vector<std::string> ());
94102 }
95103 MMVII_INTERNAL_ASSERT_always (!mInsideFunc ," Bad NewBench/EndBench handling" );
96- if (ExactMatch ? (mName ==aName) : mPattern .Match (aName))
104+ if ( (ExactMatch ? (mName ==aName) : mPattern .Match (aName))
105+ && (!mPatternRefut .Match (aName))
106+ )
97107 {
98108 mNbExe ++;
99109 mInsideFunc = true ;
@@ -337,6 +347,7 @@ class cAppli_MMVII_Bench : public cMMVII_Appli
337347 int mLevMin ; // Min level of bench
338348 int mShow ; // Do the bench show details
339349 std::string mPat ; // Pattern for selected bench
350+ std::string mPatRefut ; // Pattern for refutation of bench
340351 std::string mKeyBug ; // Pattern for selected bench
341352 int mNumBugRecall ; // /< Used if we want to force bug generation in recall process
342353 bool mDoBUSD ; // /< Do we do BenchUnbiasedStdDev
@@ -356,6 +367,7 @@ cCollecSpecArg2007 & cAppli_MMVII_Bench::ArgOpt(cCollecSpecArg2007 & anArgOpt)
356367 anArgOpt
357368 << AOpt2007 (mLevMin ," LevMin" ," Min level of bench" ,{{eTA2007::HDV}})
358369 << AOpt2007 (mPat ," PatBench" ," Pattern filtering exec bench, use XXX to get existing ones" ,{{eTA2007::HDV}})
370+ << AOpt2007 (mPatRefut ," PatRefutBench" ," Pattern for refutation" ,{{eTA2007::HDV}})
359371 << AOpt2007 (mKeyBug ," KeyBug" ," Key for forcing bug" )
360372 << AOpt2007 (mShow ," Show" ," Show mesg, Def=true if PatBench init" )
361373 << AOpt2007 (mNumBugRecall ," NBR" ," Num to Generate a Bug in Recall,(4 manuel inspection of log file)" )
@@ -369,6 +381,7 @@ cAppli_MMVII_Bench::cAppli_MMVII_Bench (const std::vector<std::string> & aVArgs,
369381 mLevMin (0 ),
370382 mShow (false ),
371383 mPat (" .*" ),
384+ mPatRefut (" @@@" ),
372385 mNumBugRecall (-1 ),
373386 mDoBUSD (false ),
374387 mDemoTest (false )
@@ -405,7 +418,7 @@ int cAppli_MMVII_Bench::Exe()
405418 if (!IsInit (&mShow ))
406419 mShow = IsInit (&mPat ); // Becoz, if mPat init, few bench => we can display msg
407420
408- cParamExeBench aParam (mPat ,mKeyBug ,mLevMin ,mShow );
421+ cParamExeBench aParam (mPat ,mPatRefut , mKeyBug ,mLevMin ,mShow );
409422 aParam.SetDemoTest (mDemoTest );
410423
411424 for (int aLev=mLevMin ; aLev<mLevelMax ; aLev++)
0 commit comments