CTEST: Fix MUMPS file parser and update test

The current file parser for a MUMPS routine uses a period "." as the
one of the signals that a line of MUMPS code is executable.  This is not
a correct assumption.  Add the period to the list of characters that CTest
will not consider the start of a line of code.

Update the test routine to have an entry point with code to match the scenario
mentioned above.
This commit is contained in:
Joseph Snyder 2014-08-15 10:50:36 -04:00
parent 1c7089924e
commit 6d66e396a1
5 changed files with 85 additions and 61 deletions

View File

@ -96,11 +96,13 @@ void cmParseMumpsCoverage::InitializeMumpsFile(std::string& file)
} }
if(found) if(found)
{ {
// (2) If the first character found above is whitespace then continue the // (2) If the first character found above is whitespace or a period
// search for the first following non-whitespace character. // then continue the search for the first following non-whitespace
// character.
if(line[i] == ' ' || line[i] == '\t') if(line[i] == ' ' || line[i] == '\t')
{ {
while(i < line.size() && (line[i] == ' ' || line[i] == '\t')) while(i < line.size() && (line[i] == ' ' || line[i] == '\t'
|| line[i] == '.'))
{ {
i++; i++;
} }

View File

@ -2160,7 +2160,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
$<TARGET_FILE:ctest> -T Coverage --debug) $<TARGET_FILE:ctest> -T Coverage --debug)
set_tests_properties(CTestGTMCoverage PROPERTIES set_tests_properties(CTestGTMCoverage PROPERTIES
PASS_REGULAR_EXPRESSION PASS_REGULAR_EXPRESSION
"Process file.*ZZCOVTST.m.*Total LOC:.*23.*Percentage Coverage: 82.61*" "Process file.*ZZCOVTST.m.*Total LOC:.*30.*Percentage Coverage: 80.00*"
ENVIRONMENT COVFILE=) ENVIRONMENT COVFILE=)
configure_file( configure_file(
@ -2178,7 +2178,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
$<TARGET_FILE:ctest> -T Coverage --debug) $<TARGET_FILE:ctest> -T Coverage --debug)
set_tests_properties(CTestCacheCoverage PROPERTIES set_tests_properties(CTestCacheCoverage PROPERTIES
PASS_REGULAR_EXPRESSION PASS_REGULAR_EXPRESSION
"Process file.*ZZCOVTST.m.*Total LOC:.*22.*Percentage Coverage: 86.36.*" "Process file.*ZZCOVTST.m.*Total LOC:.*29.*Percentage Coverage: 86.21.*"
ENVIRONMENT COVFILE=) ENVIRONMENT COVFILE=)
# Adding a test case for Python Coverage # Adding a test case for Python Coverage

View File

@ -10,6 +10,7 @@ EN ; This entry point shouldn't be found without fixing
I '$$T5 W "RETURNED FROM t5",! I '$$T5 W "RETURNED FROM t5",!
Q Q
; This line not executable ; This line not executable
D T6^ZZCOVTST
; ;
T1 ; This line should always be found T1 ; This line should always be found
N D N D
@ -33,4 +34,10 @@ T4 N D S D=5 W "Shouldn't be executed"
T5(EQ) ;this entry point is called with a $$ notation T5(EQ) ;this entry point is called with a $$ notation
W "THIS IS THE $$ NOTATION!",! W "THIS IS THE $$ NOTATION!",!
Q 0 Q 0
T6 ; An entry point to show comments inside of "DO" blocks
D
. W "This is executable code",!
. ;This is a comment inside the do block, not executable
. S ZZBLAH="blah"
W "Ending T6",!
; ;

View File

@ -1,5 +1,5 @@
Routine,Line,RtnLine,Code Routine,Line,RtnLine,Code
ZZCOVTST,1,0,"ZZCOVTST;OSEHRA/JPS -- Test routine for Coverage Parsing;4/28/2014" ZZCOVTST,1,1,"ZZCOVTST;OSEHRA/JPS -- Test routine for Coverage Parsing;4/28/2014"
,2,0," ; (tab) This is series of comments" ,2,0," ; (tab) This is series of comments"
,3,0," ; (tab) it should all be not executable" ,3,0," ; (tab) it should all be not executable"
,4,0," ; (spaces) one of these sets might be a problem" ,4,0," ; (spaces) one of these sets might be a problem"
@ -8,31 +8,38 @@ ZZCOVTST,1,0,"ZZCOVTST;OSEHRA/JPS -- Test routine for Coverage Parsing;4/28/2014
,7,1," N D" ,7,1," N D"
,8,1," S D=1 ;An executable line" ,8,1," S D=1 ;An executable line"
,9,1," D T1^ZZCOVTST" ,9,1," D T1^ZZCOVTST"
,10,1,"I '$$T5 W ""RETURNED FROM t5"",!" ,10,1," I '$$T5 W ""RETURNED FROM t5"",!"
,11,1," Q" ,11,1," D T6^ZZCOVTST"
,12,0," ; This line not executable" ,12,1," Q"
,13,0," ;" ,13,0," ; This line not executable"
,14,0,"T1 ; This line should always be found" ,14,0," ;"
,15,1," N D" ,15,0,"T1 ; This line should always be found"
,16,1," S D=2" ,16,1," N D"
,17,1," W !,D,!,""This is the second entry point"",!" ,17,1," S D=2"
,18,1," D T2^ZZCOVTST(D)" ,18,1," W !,D,!,""This is the second entry point"",!"
,19,1," Q" ,19,1," D T2^ZZCOVTST(D)"
,20,0," ;" ,20,1," Q"
,21,0,"T2(EQ) ; This is debatable" ,21,0," ;"
,22,1," N D" ,22,0,"T2(EQ) ; This is debatable and only called with ENT^ROU notation"
,23,1," S D=3" ,23,1," N D"
,24,1," W !,D,!,EQ,""This is the third entry point"",!" ,24,1," S D=3"
,25,1," D T3^ZZCOVTST" ,25,1," W !,D,!,EQ,""This is the third entry point"",!"
,26,1," Q" ,26,1," D T3^ZZCOVTST"
,27,0," ;" ,27,1," Q"
,28,1,"T3 N D S D=4 W D,!,""Fourth Entry point"",! Q" ,28,0," ;"
,29,0," ;" ,29,1,"T3 N D S D=4 W D,!,""Fourth Entry point"",! Q"
,30,0,"T4 N D S D=5 W ""Shouldn't be executed""" ,30,0," ;"
,31,0," W ""Lots to not do""" ,31,0,"T4 N D S D=5 W ""Shouldn't be executed"""
,32,0," Q" ,32,0," W ""Lots to not do"""
,33,1,"T5()" ,33,0," Q"
,34,1," W ""THIS IS ONE WITH $$ NOTATION"",1" ,34,1,"T5(EQ) ;this entry point is called with a $$ notation"
,35,1," Q 0" ,35,1," W ""THIS IS THE $$ NOTATION!"",!"
,36,0," ;" ,36,1," Q 0"
Totals for ZZCOVTST,,19, ,37,0,"T6 ; An entry point to show comments inside of ""DO"" blocks"
,38,1," D"
,39,1," . W ""This is executable code"",!"
,40,0," . ; This is a comment inside the do block, not executable"
,41,1," . S ZZBLAH=""blah"""
,42,1," W ""Ending T6"",!"
,43,0," ;"
Totals for ZZCOVTST,,25,

View File

@ -1,30 +1,38 @@
%GO Global Output Utility %GO Global Output Utility
GT.M 30-APR-2014 14:24:46 ZWR GT.M 15-AUG-2014 10:14:32 ZWR
^ZZCOVERAGE("*CHILDREN")="0:0:0" ^ZZCOVERAGE("*CHILDREN")="212000:68000:280000"
^ZZCOVERAGE("*RUN")="24000:88000:112000" ^ZZCOVERAGE("*RUN")="56000:136000:192000"
^ZZCOVERAGE("ZZCOVTST","EN")="1:4000:8000:12000:6464583" ^ZZCOVERAGE("ZZCOVTST","EN")="1:4000:4000:8000:8627798"
^ZZCOVERAGE("ZZCOVTST","EN",1)="1:0:0:0:20" ^ZZCOVERAGE("ZZCOVTST","EN",1)="1:0:0:0:27"
^ZZCOVERAGE("ZZCOVTST","EN",2)="1:0:0:0:14" ^ZZCOVERAGE("ZZCOVTST","EN",2)="1:0:0:0:23"
^ZZCOVERAGE("ZZCOVTST","EN",3)="1:0:0:0:26" ^ZZCOVERAGE("ZZCOVTST","EN",3)="1:0:0:0:70"
^ZZCOVERAGE("ZZCOVTST","EN",4)="1:0:0:0:228" ^ZZCOVERAGE("ZZCOVTST","EN",4)="1:0:0:0:74"
^ZZCOVERAGE("ZZCOVTST","T1")="1:0:0:0:92" ^ZZCOVERAGE("ZZCOVTST","EN",5)="1:0:0:0:66"
^ZZCOVERAGE("ZZCOVTST","T1",1)="1:0:0:0:13" ^ZZCOVERAGE("ZZCOVTST","EN",6)="1:0:0:0:40"
^ZZCOVERAGE("ZZCOVTST","T1",2)="1:0:0:0:12" ^ZZCOVERAGE("ZZCOVTST","T1")="1:0:0:0:208"
^ZZCOVERAGE("ZZCOVTST","T1",3)="1:0:0:0:14" ^ZZCOVERAGE("ZZCOVTST","T1",1)="1:0:0:0:23"
^ZZCOVERAGE("ZZCOVTST","T1",4)="1:0:0:0:29" ^ZZCOVERAGE("ZZCOVTST","T1",2)="1:0:0:0:24"
^ZZCOVERAGE("ZZCOVTST","T1",5)="1:0:0:0:12" ^ZZCOVERAGE("ZZCOVTST","T1",3)="1:0:0:0:26"
^ZZCOVERAGE("ZZCOVTST","T2")="1:0:0:0:102" ^ZZCOVERAGE("ZZCOVTST","T1",4)="1:0:0:0:73"
^ZZCOVERAGE("ZZCOVTST","T2",0)="1:0:0:0:14" ^ZZCOVERAGE("ZZCOVTST","T1",5)="1:0:0:0:40"
^ZZCOVERAGE("ZZCOVTST","T2",1)="1:0:0:0:12" ^ZZCOVERAGE("ZZCOVTST","T2")="1:0:0:0:1783"
^ZZCOVERAGE("ZZCOVTST","T2",2)="1:0:0:0:12" ^ZZCOVERAGE("ZZCOVTST","T2",0)="1:0:0:0:25"
^ZZCOVERAGE("ZZCOVTST","T2",3)="1:0:0:0:14" ^ZZCOVERAGE("ZZCOVTST","T2",1)="1:0:0:0:524"
^ZZCOVERAGE("ZZCOVTST","T2",4)="1:0:0:0:25" ^ZZCOVERAGE("ZZCOVTST","T2",2)="1:0:0:0:40"
^ZZCOVERAGE("ZZCOVTST","T2",5)="1:0:0:0:12" ^ZZCOVERAGE("ZZCOVTST","T2",3)="1:0:0:0:95"
^ZZCOVERAGE("ZZCOVTST","T3")="1:0:0:0:28" ^ZZCOVERAGE("ZZCOVTST","T2",4)="1:0:0:0:607"
^ZZCOVERAGE("ZZCOVTST","T3",0)="1:0:0:0:17" ^ZZCOVERAGE("ZZCOVTST","T2",5)="1:0:0:0:470"
^ZZCOVERAGE("ZZCOVTST","T5")="1:0:0:0:388" ^ZZCOVERAGE("ZZCOVTST","T3")="1:0:0:0:254"
^ZZCOVERAGE("ZZCOVTST","T5",0)="1:0:0:0:114" ^ZZCOVERAGE("ZZCOVTST","T3",0)="1:0:0:0:76"
^ZZCOVERAGE("ZZCOVTST","T5",1)="1:0:0:0:28" ^ZZCOVERAGE("ZZCOVTST","T5")="1:0:0:0:153"
^ZZCOVERAGE("ZZCOVTST","T5",2)="1:0:0:0:14" ^ZZCOVERAGE("ZZCOVTST","T5",0)="1:0:0:0:40"
^ZZCOVERAGE("ZZCOVTST","T5",1)="1:0:0:0:41"
^ZZCOVERAGE("ZZCOVTST","T5",2)="1:0:0:0:41"
^ZZCOVERAGE("ZZCOVTST","T6")="1:0:0:0:227"
^ZZCOVERAGE("ZZCOVTST","T6",1)="1:0:0:0:41"
^ZZCOVERAGE("ZZCOVTST","T6",2)="1:0:0:0:42"
^ZZCOVERAGE("ZZCOVTST","T6",4)="1:0:0:0:41"
^ZZCOVERAGE("ZZCOVTST","T6",5)="1:0:0:0:34"
^ZZCOVERAGE("ZZCOVTST","T6",6)="1:0:0:0:38"