Daily regression tests from default repositories

There is a daily cron job that rebuilds OpenAD from the latest source version available from the default set of SVN and mercurial repositories and runs a set of tests. The last run finished on Wed Sep 17 01:34:24 CDT 2014 with result:  FAILED  (logs)
If code changes have been committed and the above test result is ok a new snapshot will be created and shown in the table of snapshots.

Manual regression tests

The instructions for obtaining and executing the regression tests can be found in the manual [UtkeOUM]. We have sets of regression tests for components (Open64, FortTk,SourceProcessing) and for the entire tool chain. Some of the tests have been constructed to illustrate problems. Consequently these tests are expected to fail, are marked in orange (see below), and may be associated with a bug report.
For the entire tool chain under $OPENADROOT/Regression/testRoundTrip expected test results:
name
issues (small numerical differences are always expected)
tangent-linear
(using BasicBlockPreaccumulation)
adjoint (reverse, using BasicBlockPreaccumulationReverse)
joint
split
abs_f_arg
acos_f_arg
activeArrayPointer1 activity analysis does not notice that the pointer is active; see also bug report activity analysis does not notice that the pointer is active; see also bug report activity analysis does not notice that the pointer is active; see also bug report
activeLoopControl
allocatedFunction local deallocation not covered by reverse mode local deallocation not covered by reverse mode
argArrayIndexOverwrite0 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite1 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite2 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite3 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite4
argArrayIndexOverwrite5 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite6 needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argArrayIndexOverwrite7
argumentArrayIndex
argumentArrayIndex2
argumentArrayIndex3
argumentArrayIndex4
argumentConversion_1
argumentConversion_2
argumentConversion_3
argumentConversion_4
argumentConversion_4a
argumentConversion_4b
argumentConversion_4c
argumentConversion_4d
argumentConversion_4e
argumentConversion_4f
argumentConversion_4g
argumentConversion_5
argumentConversion_6 change of shape hidden within calling structure, detects error at run times; see also bug report change of shape hidden within calling structure, detects error at run times; see also bug report change of shape hidden within calling structure, detects error at run times; see also bug report
argumentConversion_7 overlap with copied arguments; see also bug report overlap with copied arguments; see also bug report overlap with copied arguments; see also bug report
argumentConversion_8
argumentConversion_indexOverwrite needs redesigned push/pop logic to properly save the overwritten index value needs redesigned push/pop logic to properly save the overwritten index value
argumentConversionSaveIndex
argumentConversionSaveIndex2
argumentShapeMismatch1
array4d
array5d
array6d
arrayAdd
arrayAllocation_0
arrayAllocation_1
arrayAllocation_2 array allocation bounds for passives shaped after actives see https://trac.mcs.anl.gov/projects/openAD/ticket/278 array allocation bounds for passives shaped after actives see https://trac.mcs.anl.gov/projects/openAD/ticket/278 array allocation bounds for passives shaped after actives see https://trac.mcs.anl.gov/projects/openAD/ticket/278
arrayAllocation_3
arrayBoundImplicit
arrayBoundImplicit2 implicit local deallocation not covered by reverse mode
arrayBoundVar
arrayEDiv
arrayEDivExp
arrayEMult
asin_f_arg
bat
boxmodel
box_timestep
bratu
cancellation
cast1
cbSideEffects
compressible1
ConsFold
ConsFoldSimp0
constant0
constant1
constPrec
conversion1
conversion2 real-complex conversion; bug report real-complex conversion; bug report real-complex conversion; bug report
cos_f_arg
daerfj
dfdcfj
dfdcfj_MemOps
directDependency1
directDependency2
directDependency3
DoubleArrayIndex
dQuoteInString mishandled double quote inside of string constant; see bug report mishandled double quote inside of string constant; see bug report mishandled double quote inside of string constant; see bug report
duud1
duud2
duudChains1
duudChains2
exp_f_arg
externalCalls1
externalCalls2
externalCalls3
externalSubtroutine the front end drops information about the public and private qualifiers so there is a name clash between the private module procedure and the plain subroutine (defined in the driver files); see bug report the front end drops information about the public and private qualifiers so there is a name clash between the private module procedure and the plain subroutine (defined in the driver files); see bug report the front end drops information about the public and private qualifiers so there is a name clash between the private module procedure and the plain subroutine (defined in the driver files); see bug report
float_intrinsic
funcCanonModule
funcCanonStandalone
funcInMod
gcmAssignTapeDuplication
gcmBit1
globalActive_1
globalActive_2
globalActive_3
globalActive_4
globalActive_5
globalActive_6 R1: the analysis doesn't recognize the module variables as active, bug report R1: the analysis doesn't recognize the module variables as active, bug report R1: the analysis doesn't recognize the module variables as active, bug report
globalActive_7
globalActive_8
globalActive_cbHasRef
globalActive_cbNoRef activity analysis fails when no reference is made to common block variable, bug report activity analysis fails when no reference is made to common block variable, bug report activity analysis fails when no reference is made to common block variable, bug report
globalActive_modNoRef
globalActiveSideEffect
graphEx1
graphEx2
GriewankRerouting
If_Loop_1
If_Loop_2
If_Loop_3
If_Loop_4
If_Loop_5
IfStatement_1
IfStatement_2
IfStatement_3
implicitType
implicitTypeCB no default init in adjoint component of common block variables bug report no default init in adjoint component of common block variables bug report
inactive1
int_f_arg
intMaxVal
KrishnaForLoop
lbound_f_arg
lighthouse
lion
log10_f_arg
Loop_1
Loop_2
Loop_3
LoopArrayIndex
LoopArrayIndex2
Loop_simple_1
Loop_simple_10
Loop_simple_10a
Loop_simple_11
Loop_simple_12 the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report
Loop_simple_12a the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report
Loop_simple_13
Loop_simple_14
Loop_simple_15
Loop_simple_16
Loop_simple_16a
Loop_simple_16b
Loop_simple_17
Loop_simple_18
Loop_simple_19
Loop_simple_1a
Loop_simple_1b
Loop_simple_1c
Loop_simple_1d
Loop_simple_1e
Loop_simple_1f
Loop_simple_2
Loop_simple_2a
Loop_simple_3
Loop_simple_4
Loop_simple_4a We try to restore j but cannot see that head as top level routine is called with constant for the actual parameter. follow task report for updates on this We try to restore j but cannot see that head as top level routine is called with constant for the actual parameter. follow task report for updates on this
Loop_simple_4b the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report
Loop_simple_4c
Loop_simple_5
Loop_simple_6
Loop_simple_7
Loop_simple_7a
Loop_simple_8
Loop_simple_9
Loop_simple_9a the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report
Loop_simple_9b the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report the simple loop assumptions are violated, a more generic solution involves the recomputation by inversion etc.; bug report
maxLoc
maxVal
mini1
minVal
mod_f_arg The value is not updated correctly prior to the setderiv call, so the derivative result is incorrect. See bug report
nested_calls_1
nested_calls_2
nested_calls_3
nested_calls_4
nested_calls_5
nested_dfdcfj
nestedFunc0
nestedFunc1
nestedFunc2
nestedFunc3
nestedFunc4 parser problem with nesting; see also bug report parser problem with nesting; see also bug report parser problem with nesting; see also bug report
nestedFunc5 mfef90 problem with doubly-nested subroutines mfef90 problem with doubly-nested subroutines mfef90 problem with doubly-nested subroutines
NestedIf
NestedIfLoop
NestedLoopIf
NestedLoops
noDefaultInit_1
noDefaultInit_argumentConversion_3
noDefaultInit_cbSideEffects
nullifyFunction missing intrinsic, see bug report missing intrinsic, see bug report missing intrinsic, see bug report
onEntry
onEntryLoopSimple missing index value ticket missing index value ticket
optParm1 checkpointing optional params bug report
ORNL_toy
overlappingIntermediate
overlappingLHS
passiveMix1
passiveMix2
passiveMix3
passiveStatement
passiveSubroutine
power_f_arg
presentFunction
readWrite1
readWrite2 format failure for read of active variable, bug report format failure for read of active variable, bug report format failure for read of active variable, bug report
real_f_arg
renameSRinMod
reshape adjoint handling of non-inlinable intrinsic; see bug report adjoint handling of non-inlinable intrinsic; see bug report
RoehFlux
RoehFlux_MemOps
scalarToArray broadcast scalar to array not recognized as special op broadcast scalar to array not recognized as special op
Select_1
Select_2 control flow unparsing problem; bug report control flow unparsing problem; bug report
Select_3
Select_4 unstructured control flow handling needs explicit replacement for early return, see bug report unstructured control flow handling needs explicit replacement for early return, see bug report
Select_5 unstructured control flow handling needs explicit replacement for early return, see bug report unstructured control flow handling needs explicit replacement for early return, see bug report
SeqOfIfs
SeqOfLoops
sequenceSpanningPush0
shape1
shape2
shapeReshape canonicalization does not isolate non-inlinable intrinsics; see bug report canonicalization does not isolate non-inlinable intrinsics; see bug report canonicalization does not isolate non-inlinable intrinsics; see bug report
sideEffect_1
sideEffect_2
sideEffect_3
sideEffect_4
sideEffect_5
sideEffect_6
signIntrinsic
simple0
simple1
simple2
simple3
sinh_f_arg
sliceVsSingle
speelpenning
sqrt_f_arg
srIntr
srIntrPd
srIntrPr8
stringScan
sum_f_arg sum_arr is not in the intrinsics catalog. See bug report sum_arr is not in the intrinsics catalog. See bug report sum_arr is not in the intrinsics catalog. See bug report
tanh_f_arg
todd
todd1
transfer
transpose
ubound_f_arg
u_def_struct_1
u_def_struct_2 fix up structure access bug report fix up structure access bug report fix up structure access bug report
u_def_struct_3 scalarized rep hiding index; see bug report scalarized rep hiding index; see bug report
Unstructured0
Unstructured1
Unstructured2

For Open64 under $OPENADROOT/Open64/osprey1.0/tests expected test results:
name result
allocatedArray1.f90
allocatedArray.f90 Open64 unparse error - tests for variable being 'referenced' (wn2f_stmt.cxx:1293) but wrongly concludes it isn't and skips the ST entry.
andConditionOrder.f90 front-end flips the order of the AND arguments; see bug report
arrays3.f90 Open64 unparse error with duplication of temporary variables
arrays4.f90 front end error with nested routines, see bug report
arrays4_workaround.f90
assoc.f
atmosphere.f unparser misinterprets hidden "len" argument of contained function as the actual function argument MILES, then MILES ends up being undeclared and "len" is declared in its place
carray.f
caseMultChoice.f90
caseRange.f90
charArrSlice1.f90 unparser drops the "(3:3)" from the original "sa(2)(3:3)" and the test fails
charArrSlice.f90 unparser drops the "(2:4)" from the original "sa(2)(2:4)" and the test fails
charint.f
comind.f
common1.f90
concat.f90 unparser drops the declaration of "c" in function "id"
constants.f
controlflow1.f90
controlflow_loop2.f90
data2.f
data.f90
divide.f
dividemain.f
doDown.f90
doNE.f90
doUp.f90
doVar.f90
emptyModule.f90
emptyModuleReordered.f90
emptyOnlyClause.f90
epsilon.f90 parser does not know about EPSILON; see bug report
equivalence2.f90
equivalence3a.f90
equivalence3.f90
equivalence4.f90
equivalence.f90
exitSimpler.f90
fact.f whirl2f drops the result clause of the recursive function. While ifort accepts that it is violating the standard and accordingly fails e.g. with gfortran and the NAG compiler; see bug report
fftwrap.f
inout.f
interfaceDimExpr.f90
interf.f90
logical.f90
mainTest.f90
morechar.f
multRename1.f90
multRename2.f90 the front end drops information about the public and private qualifiers and does not distinguish in the symbol table reference between A1::foo and B1::foo; see bug report.
multRename3.f90
multRename.f90
multUseOnly.f90
nesting.f90 Open64 parse error - drops innermost containment; see bug report
nesting_workaround.f90
nonEmptyModule.f90
obsolArithIf.f90
opOrder.f90
optParm1.f90
pcomplex.f
powOpParserTest.f Open64 parser SEGV, see bug report
pragmaPlacement.f90
present.f
privateQualifier2.f90
privateQualifier.f90 the front end drops information about the public and private qualifiers (for the interface and the module procedure, not for the module variables though) and does not distinguish in the symbol table reference between A1::foo and B1::foo; the main program all names resolved to just foo; see bug report
recFuncRes.f90 whirl2f drops the result clause of the recursive function. While ifort accepts that it is violating the standard and accordingly fails e.g. with gfortran and the NAG compiler; see bug report
separateFormat.f90
shapeReshape.f90
singleQuotePair.f90 the string '''bla''' is translated into double quoted "bla" when it should be single quoted 'bla'
singleRename1.f90
sliceVsSingle.f90
srAsParam.f90
static.f90
stringCompOps.f90
substring.f90
sumDble.f90
sumDbleSep.f90
sum.f90
sumReal.f90 parser logic does not propagate REAL as an elemental intrinsic, will require fix similar to changeset 819
target.f
tiny.f90 parser does not know about TINY; see bug report
transfer.f90
transpose.f90
typeInit.f90 incorrect unparsing, see bug report
where.f90 incorrect translation (whole array section), see bug report

For OpenADFortTk (translation between XAIF and whirl) under $OPENADROOT/OpenADFortTk/Regression expected test results:
name result
allocatedArray1.f90
arrayExpDiv.f90
arrayPointerShape.f90
arrays1.f90
arrays2a.f90
arrays2.f90
arrays3.f90
arrays_dimensions1.f90
bounds.f90
caseGoto.f90
cbSideEffect.f90
constants1.f90
controlflow1.f90
controlflow_if1.f90
controlflow_if2.f90
controlflow_if3.f90
controlflow_loop1a.f90
controlflow_loop1b.f90
controlflow_loop1c.f90
controlflow_loop3.f90
controlflow_switch1.f90 incorrect backtranslation of select - case construct; see bug report.
dataInit.f90
doDown.f90
doNE.f90
doubleComplex.f90
doubleConvA.f90
doubleConvS.f90
doUp.f90
doVar.f90
doWhile.f90
elementalExpComp.f90
elementalExp.f90
elementalExpM.f90
elementalExpMV.f90
elementalMultM.f90
emptyModule.f90
exit.f90
exitSimpler.f90
exitUnqualified.f90
functions1.f90 uncanonicalized function call; whirl2xaif will throw an exception for this reason; need to change Regression test setup to run canonicalization first;
functions2.f90 open64 drops the result clause on the recursive function, see bug report
functions_nested1.f90
functions_nested2.f90 uncanonicalized function call; whirl2xaif will throw an exception for this reason; need to change Regression test setup to run canonicalization first;
functions_nested3.f90 uncanonicalized function call; whirl2xaif will throw an exception for this reason; need to change Regression test setup to run canonicalization first;
implicitArrayBound.f90
inline1.f90
inline2.f90
inline3.f90
interfAssumedShapeArr.f90
intMaxVal.f90
intrinsics1.f90
intrinsics2.f90
logicalAny.f90
logical.f90
module_with_pragmas.f90
multRename1.f90
multRename2.f90 the front end drops information about the public and private qualifiers and does not distinguish in the symbol table reference between A1::foo and B1::foo; see bug report.
multRename3.f90
multUseOnly.f90
nullify.f90
PostProcess_activeInterface2.f90
PostProcess_activeInterface3.f90
PostProcess_activeInterface.f90
PostProcess_activeOut_rec1.f90
PostProcess_activeOut_rec2.f90
PostProcess_activePointer.f90
PostProcess_activeStructPointer.f90
PostProcess_allocatedActive.f90
PostProcess_arrayExpDiv.f90
PostProcess_arrayPointerShape.f90
PostProcess_bounds.f90
PostProcess_ComBlock1.f90
PostProcess_ComBlock2.f90
PostProcess_ComBlock3.f90
PostProcess_ComBlock.f90
PostProcess_indexArray.f90
PostProcess_modVarInit.f90
PostProcess_optParm1.f90
PostProcess_print1.f90
PostProcess_privateQualifier2.f
PostProcess_separateFormat.f90 compiler bug, not OpenAD problem: the syntax of the postprocessed output is ok: string constant with a line break inside in fixed format; ifort does not parse it correctly and issues an error; see ifort discussion thread and another thread for the free format case
PostProcess_types_derived1.f90
PostProcess_types_derived2.f90
PostProcess_types_derived3.f90
PostProcess_types_derived4.f90 incorrect unparsing, see bug report
PostProcess_types_derived5.f90
PostProcess_types_derived6.f90
PostProcess_types_derived7.f90
rTypeElem.f90
rType.f90
rTypeS.f90
rTypeV.f90
scalars1.f90
scalars2.f90
scalars3.f90
scalars4.f90
scalars5.f90
scoping1.f90
selExit.f90
selGoto.f90
sideEffect_6.f90
sideEffectNested2.f90 nesting level dropped by Open64; see also bug report
sideEffectNested3.f90
sideEffectNested4.f90
sideEffectNested.f90
sideEffectOOS.f90
simpleExpComp.f90
singleVariable.f90 stack corruption possibly caused in the ananlysis phase; see bug report
sliceVsSingle.f90
stringArray.f90
stringCompOps.f90 undefined intrinsics, see bug report
stringLen.f90
stringScan.f90
stringSliceComp2.f90
stringSliceComp.f90
types_kind1.f90
UnStruct_controlflow_loop1a.f90
UnStruct_controlflow_loop1b.f90
UnStruct_controlflow_loop1c.f90
UnStruct_controlflow_loop1d.f90
UnStruct_controlflow_loop1.f90
UnStruct_controlflow_loop2.f90
UnStruct_controlflow_loop4.f90 incorrect back translation in xaif2whirl, see bug report
useOnly.f90
useParam.f90
useParamOnly.f90

For SourceProcessing (canonicalization and postprocessing) under $OPENADROOT/OpenADFortTk/tools/SourceProcessing/Regression expected test results:
name result
alogTest.free.f90
altEntry.free.f90
anyTest.free.f90
archaic1.free.f90
arrayConstructor2.free.f90
arrayConstructor.free.f90
arrays1.free.f90
arrays2.free.f90
arrays3.free.f90
arrays_dimensions1.free.f90
arrMin.free.f90
boxmodelTypo.fixed.f preprocessor cannot parse technically correct placement of period in "(l. LE. ndim)"; see bug report
bracketing.free.f90
canonIO.free.f90
cbBlank.free.f90
cbDecl.free.f90
cbInference.free.f90
cbRepeat.free.f90
characterWithLenAndKind.free.f90
charArr2.free.f90
charArr.free.f90
comment1.free.f90
comment2.free.f90
commentCont2.free.f90
commentCont.free.f90
comment.free.f90
constants1.free.f90
constants.fixed.f
deletedStmts1.fixed.f
divide.fixed.f
dividemain.fixed.f
drvdTypeArrayInference2.free.f90
drvdTypeArrayInference.free.f90
drvdTypeArrayMemberInference2.free.f90
drvdTypeArrayMemberInference.free.f90
drvdTypeArrayShapeInference2.free.f90
drvdTypeArrayShapeInference3.free.f90
drvdTypeArrayShapeInference.free.f90
drvdTypeInference2.free.f90 duplicate named entries make the genericresolve fail; see bug report
drvdTypeInference.free.f90
drvdTypeInferenceNested.free.f90
ellipsisFunCall.free.f90
entityTypeDecl.free.f90
external.free.f90
externalSR.free.f90
f2sArrayReturn2.free.f90
f2sArrayReturn.free.f90
f2sCharReturn.free.f90
f2sExplInterf.free.f90
f2sFuncAsDummy2.free.f90
f2sFuncAsDummy3.free.f90 preprocessor does not handle nested interfaces ; see bug report
f2sFuncAsDummy4.free.f90
f2sFuncAsDummy.free.f90
f2sNested.free.f90
f2sNoHoist.free.f90
f2sPublic2.free.f90
f2sPublic.free.f90
f2sUse.free.f90
fortran_class2.f90
fortran_class.f90
funcQualifiers.free.f90
functionComment.free.f90
functionResultType.free.f90
hoistFuncCall.free.f90
ifNonThen.free.f90
interface2Symtab.free.f90
interface3Symtab.free.f90 rename needs to be applied to interface blocks; see bug report
interfaceSymtab.free.f90
kindInference.free.f90
logicalKind.f90
lonelySave.free.f90
longDataStatementLine.free.f90
maxDouble.free.f90
maxloc.free.f90
maxmix.f90
maxShapes.free.f90
maxSpec.f90
maxSpec.free.f90
maxVal.free.f90
moduleContainsPublicFunction.free.f90
moduleNatureTest.free.f90
moduleProcInference1.free.f90
moduleProcInference2.free.f90
moduleRepeat.free.f90
multipleModuleProcedures.free.f90
multipleModuleProceduresGen.free.f90
nameReuseInType.free.f90
nestedProc.free.f90
obsoleteDoTermination.fixed.f
parameterArg.free.f90
parameterArg.free.f90.options
privateDefaultModuleDecl.free.f90
privateModuleDecl.free.f90
publicDefaultModuleDecl.free.f90
quote_cont_test.f90
realInference.free.f90
realInferenceParameterStmt.free.f90
recFun.free.f90
recSR.free.f90
redefImplicit2.free.f90
redefImplicit.free.f90
renameKind2.free.f90
renameKind3.free.f90
renameKind4.free.f90
renameKind5.free.f90
renameKind.free.f90
repeat.free.f90
scanIntrinsic.free.f90
scanStringConst.free.f90
statementFunc1.f90
statementFunc.f90
stmtFunc1.free.f90
stringOps.free.f90
target.fixed.f
transfer.free.f90
typeBoundProcedure.f90
UnStruct_controlflow_arithmIf.free.f90
UnStruct_controlflow_goto1.free.f90
UnStruct_controlflow_goto2.free.f90
UnStruct_controlflow_loop2.free.f90
UnStruct_controlflow_loop4.free.f90
writeStmt.free.f90