Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
74c68f4
check: tests for uncovered statements and preprocessor directives
rakab Oct 9, 2026
47eef34
check: tests for On/Off and Print options, FactDollar, Modulus and tr…
rakab Oct 9, 2026
81dde29
check: tests for topological statements, Sum, Merge/Stuffle and file …
rakab Oct 9, 2026
143c8d2
check: tests for preprocessor dollars in #if, channels and symmetric …
rakab Oct 9, 2026
4d04fdb
check: tests for #write formats, TryReplace and table lookups
rakab Oct 9, 2026
5f965d3
check: deeper symmetric pattern matching tests
rakab Oct 9, 2026
b5ce590
check: add shape/wildcard/id-modifier dollar tests to coverage.frm
rakab Oct 9, 2026
0c09a6e
check: add compile-error and preprocessor-error zoo tests to coverage…
rakab Oct 9, 2026
46214da
check: add PolyRatFun, preprocessor-cond and bracket tests to coverag…
rakab Oct 9, 2026
5f06f3a
check: add set_/multipleof_ conditions, #inside and termsinbracket tests
rakab Oct 9, 2026
1848905
check: add polyratfun save/load and termsinbracket coverage tests
rakab Oct 9, 2026
539873a
check: add trace4 and id_ function coverage tests
rakab Oct 9, 2026
b9861f2
check: add diagram generation tests to coverage.frm
rakab Oct 9, 2026
cba6254
sources: annotate unreachable 32-bit save translation and unfinished …
rakab Oct 9, 2026
305e1e4
check: add module statement and dollar conversion tests to coverage.frm
rakab Oct 9, 2026
af3fc23
check: add save/load, wildargs dollar and expression property tests t…
rakab Oct 9, 2026
91f79e5
check: add illegal name and character error path tests to coverage.frm
rakab Oct 9, 2026
f5230a7
check: add fromexternal variable and no-channel tests to coverage.frm
rakab Oct 9, 2026
09e4202
sources: annotate unreachable graph-generator diagnostics and debug c…
rakab Oct 9, 2026
991476e
check: add preprocessor dictionary test to coverage.frm
rakab Oct 9, 2026
ed589ee
check: add statement and module-terminator tests to coverage.frm
rakab Oct 10, 2026
7bb143e
sources: annotate unused ratio.c helpers and graph-generator construc…
rakab Oct 10, 2026
3b6e547
check: add cyclic and symmetric function matching tests to coverage.frm
rakab Oct 10, 2026
65a0212
check: add Format Optimize scheme option tests to coverage.frm
rakab Oct 10, 2026
6f2fee8
check: add ToTensor, content_, tracen and bracket-power tests to cove…
rakab Oct 10, 2026
0598245
check: extend tracen coverage test with dimension-symbol and repeated…
rakab Oct 10, 2026
5c28586
check: add contentmerge dollar-factor and dotproduct content tests
rakab Oct 10, 2026
aec8db0
check: add Select-with-sets test to coverage.frm
rakab Oct 10, 2026
564ca5e
check: add PolyFun argument-addition test to coverage.frm
rakab Oct 10, 2026
b877c7b
check: add .store/.clear declaration-reset test to coverage.frm
rakab Oct 10, 2026
763e7c4
check: add vector-substitution test to coverage.frm
rakab Oct 10, 2026
1c5081c
check: add dollar-in-tensor-argument tests to coverage.frm
rakab Oct 10, 2026
7033983
check: add roots-of-unity and mod_/makerational_ tests to coverage.frm
rakab Oct 10, 2026
a211b84
check: add wildcard-dotproduct-exponent test to coverage.frm
rakab Oct 10, 2026
b9601c2
fix: uninitialized wildcard tables and numrhs save in cyclic argwild …
rakab Oct 10, 2026
5418f7f
check: add cyclic function argwild tests to coverage.frm
rakab Oct 10, 2026
2d53db6
check: add runtime-if dollar type error tests to coverage.frm
rakab Oct 10, 2026
dd2c4e8
check: add bracket index scan tests to coverage.frm
rakab Oct 10, 2026
254000a
check: add once vector-wildcard dotproduct test to coverage.frm
rakab Oct 10, 2026
97bf791
check: add tablebase use/load error path tests to coverage.frm
rakab Oct 10, 2026
72aae3c
sources: annotate unreachable dollar-handling code as excluded from c…
rakab Oct 10, 2026
5c42f72
check: transform/stuffle/preprocessor coverage tests
rakab Oct 10, 2026
59d0735
check: wildcard, bracket-set and #write channel coverage tests
rakab Oct 10, 2026
7c3ec2d
check: FactArg/FactDollar and if/match coverage tests
rakab Oct 10, 2026
91c4795
check: DoTail, FillExpression and #exists/#isnum coverage tests
rakab Oct 10, 2026
f9a7dac
check: TakeArg, DoTail and wildcard coverage tests
rakab Oct 10, 2026
2d8261e
check: dollar, modulo and replace-branch coverage tests
rakab Oct 10, 2026
974b262
check: do-cycle, anti-function and modulo coverage tests
rakab Oct 10, 2026
d0d61a6
check: MakeRational/GCD, big-integer and expression-argument coverage…
rakab Oct 10, 2026
64465c2
check: factorize, sort and symmetry coverage tests
rakab Oct 10, 2026
32a0d6b
check: polynomial, putinside and set-member coverage tests
rakab Oct 10, 2026
5a0893a
check: modulus, factorize and DoLoop coverage tests
rakab Oct 10, 2026
037cefa
check: drop cov_notstored_a (save-of-unstored dumps binary garbage)
rakab Oct 10, 2026
5c2f8ba
check: factorize, TakeArg, modulus and dollar-index coverage tests
rakab Oct 10, 2026
3e79e5d
check: bracket-dotproduct, tempdir and factorize coverage tests
rakab Oct 10, 2026
d1637a0
check: 35 new coverage tests; 5 marked pending under tvorm
rakab Oct 10, 2026
e34f1e1
fix: bail out on failed ifmatch pattern and transform set instead of …
rakab Oct 10, 2026
33e235a
check: regression folds for the ifmatch and transform crash fixes
rakab Oct 10, 2026
bd0d02d
check: 60 coverage tests for error paths and rarely used statements
rakab Oct 10, 2026
8fdb0cc
check: 22 coverage tests for traces, very large expressions and names…
rakab Oct 11, 2026
7a1c880
check: 32 coverage tests for traces, sparse tables, dictionaries and …
rakab Oct 11, 2026
785dcd8
check: 17 coverage tests for dollars in arithmetic and namespace/setu…
rakab Oct 11, 2026
2371b51
check: 46 coverage tests for specific error messages and statement op…
rakab Oct 11, 2026
fffdeed
check: 20 coverage tests for table deallocation, factorization option…
rakab Oct 11, 2026
5b34074
check: 67 coverage tests, mostly compiler and preprocessor error paths
rakab Oct 11, 2026
eefe3fe
sources: annotate unused/unfinished grcc and mytime code as excluded …
rakab Oct 11, 2026
128cc9d
check: 30 coverage tests for the diagram-generation options
rakab Oct 11, 2026
f437e18
check: 311 coverage tests for compiler, preprocessor and runtime erro…
rakab Oct 11, 2026
4157ecf
check: 38 coverage tests for table bases, transforms, encode/decode a…
rakab Oct 12, 2026
159dd29
sources: annotate dead functions (MakeDollarMod, TestTerm, grcc helpe…
rakab Oct 12, 2026
7e50b69
check: remove tests that pinned buggy output; fix tests that passed f…
rakab Oct 12, 2026
a03e8ff
check: make the new coverage tests pass in all upstream CI configurat…
rakab Oct 12, 2026
bacaef2
fix: pass the subkey name to the TableBase On/Off error messages
rakab Oct 12, 2026
748a002
check: guard coverage tests for ParFORM and FLINT-less builds
rakab Oct 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17,241 changes: 17,241 additions & 0 deletions check/coverage.frm

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions sources/compcomm.c
Original file line number Diff line number Diff line change
Expand Up @@ -4446,6 +4446,7 @@ int CoIf(UBYTE *inp)
if ( level < 0 ) { error = -1; goto endofif; }
error = 1;
}
if ( error ) goto endofif; /* never copy lhs of a failed pattern */
/*
If we pop numlhs we are in good shape
*/
Expand Down
32 changes: 31 additions & 1 deletion sources/dollar.c
Original file line number Diff line number Diff line change
Expand Up @@ -603,12 +603,14 @@ UBYTE *WriteDollarToBuffer(WORD numdollar, WORD par)
}
AO.OutInBuffer = 1;
switch ( d->type ) {
/* UNFINISHED_FEATURE_EXCL_START */
case DOLARGUMENT:
WriteArgument(d->where);
break;
case DOLSUBTERM:
WriteSubTerm(d->where,1);
break;
/* UNFINISHED_FEATURE_EXCL_STOP */
case DOLNUMBER:
case DOLTERMS:
t = d->where;
Expand Down Expand Up @@ -1097,21 +1099,25 @@ WORD DolToTensor(PHEAD WORD numdollar)
retval = d->where[1];
}
else if ( d->type == DOLARGUMENT &&
/* UNFINISHED_FEATURE_EXCL_START */
d->where[0] <= -FUNCTION && d->where[0] > -FUNCTION-WILDOFFSET
&& functions[-d->where[0]-FUNCTION].spec >= TENSORFUNCTION ) {
retval = -d->where[0];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] <= -FUNCTION && d->where[1] > -FUNCTION-WILDOFFSET
&& d->where[2] == 0
&& functions[-d->where[1]-FUNCTION].spec >= TENSORFUNCTION ) {
retval = -d->where[1];
}
else if ( d->type == DOLSUBTERM &&
/* UNFINISHED_FEATURE_EXCL_START */
d->where[0] >= FUNCTION && d->where[0] < FUNCTION+WILDOFFSET
&& functions[d->where[0]-FUNCTION].spec >= TENSORFUNCTION ) {
retval = d->where[0];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else {
AN.ErrorInDollar = 1;
retval = 0;
Expand Down Expand Up @@ -1156,19 +1162,23 @@ WORD DolToFunction(PHEAD WORD numdollar)
d->where[1] >= FUNCTION && d->where[1] < FUNCTION+WILDOFFSET ) {
retval = d->where[1];
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLARGUMENT &&
d->where[0] <= -FUNCTION && d->where[0] > -FUNCTION-WILDOFFSET ) {
retval = -d->where[0];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] <= -FUNCTION && d->where[1] > -FUNCTION-WILDOFFSET
&& d->where[2] == 0 ) {
retval = -d->where[1];
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLSUBTERM &&
d->where[0] >= FUNCTION && d->where[0] < FUNCTION+WILDOFFSET ) {
retval = d->where[0];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else {
AN.ErrorInDollar = 1;
retval = 0;
Expand Down Expand Up @@ -1210,6 +1220,7 @@ WORD DolToVector(PHEAD WORD numdollar)
if ( d->type == DOLINDEX && d->index < 0 ) {
retval = d->index;
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLARGUMENT && ( d->where[0] == -VECTOR
|| d->where[0] == -MINVECTOR ) ) {
retval = d->where[1];
Expand All @@ -1218,6 +1229,7 @@ WORD DolToVector(PHEAD WORD numdollar)
&& d->where[1] == 3 && d->where[2] < 0 ) {
retval = d->where[2];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLTERMS && d->where[0] == 7 &&
d->where[7] == 0 && d->where[6] == 3 &&
d->where[5] == 1 && d->where[4] == 1 &&
Expand Down Expand Up @@ -1275,12 +1287,16 @@ WORD DolToNumber(PHEAD WORD numdollar)
else return(-d->where[1]);
}
else if ( d->type == DOLARGUMENT && d->where[0] == -SNUMBER ) {
/* UNFINISHED_FEATURE_EXCL_START */
return(d->where[1]);
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLARGUMENT && d->where[0] == -INDEX
/* UNFINISHED_FEATURE_EXCL_START */
&& d->where[1] >= 0 && d->where[1] < AM.OffsetIndex ) {
return(d->where[1]);
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLZERO ) return(0);
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] == -SNUMBER && d->where[3] == 0 ) {
Expand Down Expand Up @@ -1335,13 +1351,15 @@ WORD DolToSymbol(PHEAD WORD numdollar)
&& d->where[5] == 1 && d->where[4] == 1 && d->where[1] == SYMBOL ) {
retval = d->where[3];
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLARGUMENT && d->where[0] == -SYMBOL ) {
retval = d->where[1];
}
else if ( d->type == DOLSUBTERM && d->where[0] == SYMBOL
&& d->where[1] == 4 && d->where[3] == 1 ) {
retval = d->where[2];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] == -SYMBOL && d->where[3] == 0 ) {
retval = d->where[2];
Expand Down Expand Up @@ -1390,13 +1408,17 @@ WORD DolToIndex(PHEAD WORD numdollar)
retval = d->where[3];
}
else if ( d->type == DOLARGUMENT && d->where[0] == -SNUMBER
/* UNFINISHED_FEATURE_EXCL_START */
&& d->where[1] >= 0 && d->where[1] < AM.OffsetIndex ) {
retval = d->where[1];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLARGUMENT && d->where[0] == -INDEX
/* UNFINISHED_FEATURE_EXCL_START */
&& d->where[1] >= 0 ) {
retval = d->where[1];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLZERO ) return(0);
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] == -SNUMBER && d->where[3] == 0 && d->where[2] >= 0
Expand All @@ -1414,10 +1436,12 @@ WORD DolToIndex(PHEAD WORD numdollar)
&& d->where[1] >= 0 ) {
retval = d->where[1];
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLSUBTERM && d->where[0] == INDEX
&& d->where[1] == 3 && d->where[2] >= 0 ) {
retval = d->where[2];
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] == -INDEX && d->where[3] == 0 && d->where[2] >= 0 ) {
retval = d->where[2];
Expand Down Expand Up @@ -1625,6 +1649,7 @@ LONG DolToLong(PHEAD WORD numdollar)
if ( d->where[5] > 0 ) return(x);
else return(-x);
}
/* UNFINISHED_FEATURE_EXCL_START */
else if ( d->type == DOLARGUMENT && d->where[0] == -SNUMBER ) {
x = d->where[1];
return(x);
Expand All @@ -1634,6 +1659,7 @@ LONG DolToLong(PHEAD WORD numdollar)
x = d->where[1];
return(x);
}
/* UNFINISHED_FEATURE_EXCL_STOP */
else if ( d->type == DOLZERO ) return(0);
else if ( d->type == DOLWILDARGS && d->where[0] == 0
&& d->where[1] == -SNUMBER && d->where[3] == 0 ) {
Expand Down Expand Up @@ -3556,7 +3582,8 @@ void CleanDollarFactors(DOLLARS d)
#] CleanDollarFactors :
#[ TakeDollarContent :
*/

/* UNFINISHED_FEATURE_EXCL_START */
/* only caller is TakeDollarContent(), which has no caller */
WORD *TakeDollarContent(PHEAD WORD *dollarbuffer, WORD **factor)
{
WORD *remain, *t;
Expand Down Expand Up @@ -3771,6 +3798,7 @@ WORD *MakeDollarInteger(PHEAD WORD *bufin,WORD **bufout)
Terminate(-1);
return(0);
}
/* UNFINISHED_FEATURE_EXCL_STOP */

/*
#] MakeDollarInteger :
Expand All @@ -3783,6 +3811,7 @@ WORD *MakeDollarInteger(PHEAD WORD *bufin,WORD **bufout)
* Already the coefficients are taken modulus AN.cmod and AN.ncmod == 1
*/

/* UNFINISHED_FEATURE_EXCL_START: sole caller is TakeDollarContent() above, which has no callers and is already excluded */
WORD *MakeDollarMod(PHEAD WORD *buffer, WORD **bufout)
{
GETBIDENTITY
Expand Down Expand Up @@ -3821,6 +3850,7 @@ WORD *MakeDollarMod(PHEAD WORD *buffer, WORD **bufout)
EndSort(BHEAD (WORD *)bufout,2);
return(factor);
}
/* UNFINISHED_FEATURE_EXCL_STOP */
/*
#] MakeDollarMod :
#[ GetDolNum :
Expand Down
6 changes: 6 additions & 0 deletions sources/extcmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,11 @@ int n=0;
return n;
}/*parseline*/

/* UNFINISHED_FEATURE_EXCL_START */
/* preset-channel (cooperating-parent PID protocol) helpers: str2i,
l2s, writeSome and readSome are called only from the preset-channel
parser, which requires an outer wrapper process launching FORM —
unreachable from .frm programs and the test suite */
/*Reads positive decimal number (not bigger than maxnum)
from the string and returns it;
the pointer *b is set to the next non-converted character:*/
Expand Down Expand Up @@ -707,6 +712,7 @@ static FORM_INLINE ssize_t readSome(int fd, char *buf, size_t count, int timeout
}while(nrep);
return (res);
}/*readSome*/
/* UNFINISHED_FEATURE_EXCL_STOP */

/*
#] Local functions :
Expand Down
Loading
Loading