* Script to test for memory leaks

git-svn-id: trunk@24771 -
This commit is contained in:
michael 2013-06-02 13:16:15 +00:00
parent 98c9425c8b
commit 998da11ecd
4 changed files with 313 additions and 0 deletions

3
.gitattributes vendored
View File

@ -2188,12 +2188,14 @@ packages/fcl-db/tests/dbtestframework_gui.lpr svneol=native#text/plain
packages/fcl-db/tests/inieditor.lfm svneol=native#text/plain
packages/fcl-db/tests/inieditor.pas svneol=native#text/plain
packages/fcl-db/tests/memdstoolsunit.pas svneol=native#text/plain
packages/fcl-db/tests/reruntest.sh svneol=native#text/plain
packages/fcl-db/tests/sdfdstoolsunit.pas svneol=native#text/plain
packages/fcl-db/tests/sqldbtoolsunit.pas svneol=native#text/plain
packages/fcl-db/tests/tcgensql.pas svneol=native#text/plain
packages/fcl-db/tests/tcparser.pas svneol=native#text/plain
packages/fcl-db/tests/tcsdfdata.pp svneol=native#text/plain
packages/fcl-db/tests/tcsqlscanner.pas svneol=native#text/plain
packages/fcl-db/tests/test-list.txt svneol=native#text/plain
packages/fcl-db/tests/test.json svneol=native#text/plain
packages/fcl-db/tests/testbasics.pas svneol=native#text/plain
packages/fcl-db/tests/testbufdatasetstreams.pas svneol=native#text/plain
@ -2203,6 +2205,7 @@ packages/fcl-db/tests/testdbexport.pas svneol=native#text/plain
packages/fcl-db/tests/testdddiff.pp svneol=native#text/plain
packages/fcl-db/tests/testfieldtypes.pas svneol=native#text/plain
packages/fcl-db/tests/testjsondataset.pp svneol=native#text/plain
packages/fcl-db/tests/testleaks.sh svneol=native#text/plain
packages/fcl-db/tests/testspecifictbufdataset.pas svneol=native#text/plain
packages/fcl-db/tests/testspecifictdbf.pas svneol=native#text/plain
packages/fcl-db/tests/testsqlfiles.lpi svneol=native#text/plain

View File

@ -0,0 +1,19 @@
#!/bin/bash
cd ..
make clean all OPT=-gl
if [ $? != 0 ]; then
exit
fi
cd tests
fpc dbtestframework.pas -glh -Fu../units/x86_64-linux/
if [ $? != 0 ]; then
exit
fi
if [ "$1" != "" ]; then
./dbtestframework --suite=$1
else
./dbtestframework
fi
#
#

View File

@ -0,0 +1,261 @@
TTestBasics.TestParseSQL
TTestBasics.TestInitFielddefsFromFields
TTestBasics.TestDoubleFieldDef
TTestBasics.TestFieldDefWithoutDS
TTestBasics.TestGetParamList
TTestBasics.TestGetFieldList
TTestBasics.TestExtractFieldName
TTestFieldTypes.TestEmptyUpdateQuery
TTestFieldTypes.TestParseJoins
TTestFieldTypes.TestDoubleFieldNames
TTestFieldTypes.TestParseUnion
TTestFieldTypes.TestInsertLargeStrFields
TTestFieldTypes.TestNumericNames
TTestFieldTypes.TestApplyUpdFieldnames
TTestFieldTypes.TestServerFilter
TTestFieldTypes.Test11Params
TTestFieldTypes.TestRowsAffected
TTestFieldTypes.TestLocateNull
TTestFieldTypes.TestLocateOnMoreRecords
TTestFieldTypes.TestStringsReplace
TTestFieldTypes.TestCircularParams
TTestFieldTypes.TestBug9744
TTestFieldTypes.TestCrossStringDateParam
TTestFieldTypes.TestGetFieldNames
TTestFieldTypes.TestUpdateIndexDefs
TTestFieldTypes.TestMultipleFieldPKIndexDefs
TTestFieldTypes.TestGetIndexDefs
TTestFieldTypes.TestSetBlobAsMemoParam
TTestFieldTypes.TestSetBlobAsBlobParam
TTestFieldTypes.TestSetBlobAsStringParam
TTestFieldTypes.TestNonNullableParams
TTestFieldTypes.TestDblQuoteEscComments
TTestFieldTypes.TestpfInUpdateFlag
TTestFieldTypes.TestScript
TTestFieldTypes.TestInsertReturningQuery
TTestFieldTypes.TestOpenStoredProc
TTestFieldTypes.TestOpenSpecialStatements
TTestFieldTypes.TestTemporaryTable
TTestFieldTypes.TestRefresh
TTestFieldTypes.TestParametersAndDates
TTestFieldTypes.TestExceptOnsecClose
TTestFieldTypes.TestErrorOnEmptyStatement
TTestFieldTypes.TestBlob
TTestFieldTypes.TestChangeBlob
TTestFieldTypes.TestBlobGetText
TTestFieldTypes.TestBlobSize
TTestFieldTypes.TestLargeRecordSize
TTestFieldTypes.TestInt
TTestFieldTypes.TestNumeric
TTestFieldTypes.TestFloat
TTestFieldTypes.TestDate
TTestFieldTypes.TestDateTime
TTestFieldTypes.TestString
TTestFieldTypes.TestUnlVarChar
TTestFieldTypes.TestNullValues
TTestFieldTypes.TestParamQuery
TTestFieldTypes.TestStringParamQuery
TTestFieldTypes.TestFixedStringParamQuery
TTestFieldTypes.TestDateParamQuery
TTestFieldTypes.TestSmallIntParamQuery
TTestFieldTypes.TestIntParamQuery
TTestFieldTypes.TestLargeIntParamQuery
TTestFieldTypes.TestTimeParamQuery
TTestFieldTypes.TestDateTimeParamQuery
TTestFieldTypes.TestFmtBCDParamQuery
TTestFieldTypes.TestFloatParamQuery
TTestFieldTypes.TestBCDParamQuery
TTestFieldTypes.TestBytesParamQuery
TTestFieldTypes.TestVarBytesParamQuery
TTestFieldTypes.TestBooleanParamQuery
TTestFieldTypes.TestAggregates
TTestFieldTypes.TestStringLargerThen8192
TTestFieldTypes.TestQueryAfterReconnect
TTestFieldTypes.TestTableNames
TTestFieldTypes.TestFieldNames
TTestFieldTypes.TestClearUpdateableStatus
TTestFieldTypes.TestReadOnlyParseSQL
TTestFieldTypes.TestGetTables
TTestFieldTypes.TestSQLClob
TTestFieldTypes.TestSQLLargeint
TTestFieldTypes.TestSQLInterval
TTestFieldTypes.TestSQLIdentity
TTestFieldTypes.TestSQLReal
TTestDBBasics.TestSetFieldValues
TTestDBBasics.TestGetFieldValues
TTestDBBasics.TestSupportIntegerFields
TTestDBBasics.TestSupportSmallIntFields
TTestDBBasics.TestSupportWordFields
TTestDBBasics.TestSupportStringFields
TTestDBBasics.TestSupportBooleanFields
TTestDBBasics.TestSupportFloatFields
TTestDBBasics.TestSupportLargeIntFields
TTestDBBasics.TestSupportDateFields
TTestDBBasics.TestSupportTimeFields
TTestDBBasics.TestSupportCurrencyFields
TTestDBBasics.TestSupportBCDFields
TTestDBBasics.TestSupportfmtBCDFields
TTestDBBasics.TestSupportFixedStringFields
TTestDBBasics.TestSupportBlobFields
TTestDBBasics.TestSupportMemoFields
TTestDBBasics.TestDoubleClose
TTestDBBasics.TestCalculatedField
TTestDBBasics.TestAssignFieldftString
TTestDBBasics.TestAssignFieldftFixedChar
TTestDBBasics.TestSelectQueryBasics
TTestDBBasics.TestPostOnlyInEditState
TTestDBBasics.TestMove
TTestDBBasics.TestActiveBufferWhenClosed
TTestDBBasics.TestEOFBOFClosedDataset
TTestDBBasics.TestLayoutChangedEvents
TTestDBBasics.TestDataEventsResync
TTestDBBasics.TestRecordcountAfterReopen
TTestDBBasics.TestdeFieldListChange
TTestDBBasics.TestExceptionLocateClosed
TTestDBBasics.TestCanModifySpecialFields
TTestDBBasics.TestDetectionNonMatchingDataset
TTestCursorDBBasics.TestCancelUpdDelete1
TTestCursorDBBasics.TestCancelUpdDelete2
TTestCursorDBBasics.TestAppendInsertRecord
TTestCursorDBBasics.TestBookmarks
TTestCursorDBBasics.TestBookmarkValid
TTestCursorDBBasics.TestDelete1
TTestCursorDBBasics.TestDelete2
TTestCursorDBBasics.TestLocate
TTestCursorDBBasics.TestLocateCaseIns
TTestCursorDBBasics.TestLocateCaseInsInts
TTestCursorDBBasics.TestFirst
TTestCursorDBBasics.TestIntFilter
TTestCursorDBBasics.TestOnFilter
TTestCursorDBBasics.TestStringFilter
TTestCursorDBBasics.TestNullAtOpen
TTestCursorDBBasics.TestAppendOnEmptyDataset
TTestCursorDBBasics.TestInsertOnEmptyDataset
TTestCursorDBBasics.TestEofAfterFirst
TTestCursorDBBasics.TestLastAppendCancel
TTestCursorDBBasics.TestRecNo
TTestCursorDBBasics.TestSetRecNo
TTestCursorDBBasics.TestBug7007
TTestCursorDBBasics.TestBug6893
TTestCursorDBBasics.TestRequired
TTestCursorDBBasics.TestOldValueObsolete
TTestCursorDBBasics.TestOldValue
TTestCursorDBBasics.TestModified
TTestBufDatasetDBBasics.TestClosedIndexFieldNames
TTestBufDatasetDBBasics.TestFileNameProperty
TTestBufDatasetDBBasics.TestClientDatasetAsMemDataset
TTestBufDatasetDBBasics.TestSaveAsXML
TTestBufDatasetDBBasics.TestIsEmpty
TTestBufDatasetDBBasics.TestBufDatasetCancelUpd
TTestBufDatasetDBBasics.TestBufDatasetCancelUpd1
TTestBufDatasetDBBasics.TestMultipleDeleteUpdateBuffer
TTestBufDatasetDBBasics.TestDoubleDelete
TTestBufDatasetDBBasics.TestReadOnly
TTestBufDatasetDBBasics.TestMergeChangeLog
TTestBufDatasetDBBasics.TestAddIndexInteger
TTestBufDatasetDBBasics.TestAddIndexSmallInt
TTestBufDatasetDBBasics.TestAddIndexBoolean
TTestBufDatasetDBBasics.TestAddIndexFloat
TTestBufDatasetDBBasics.TestAddIndexLargeInt
TTestBufDatasetDBBasics.TestAddIndexDateTime
TTestBufDatasetDBBasics.TestAddIndexCurrency
TTestBufDatasetDBBasics.TestAddIndexBCD
TTestBufDatasetDBBasics.TestAddIndex
TTestBufDatasetDBBasics.TestAddDescIndex
TTestBufDatasetDBBasics.TestAddCaseInsIndex
TTestBufDatasetDBBasics.TestInactSwitchIndex
TTestBufDatasetDBBasics.TestAddIndexActiveDS
TTestBufDatasetDBBasics.TestAddIndexEditDS
TTestBufDatasetDBBasics.TestIndexFieldNames
TTestBufDatasetDBBasics.TestIndexFieldNamesAct
TTestBufDatasetDBBasics.TestIndexCurRecord
TTestBufDatasetDBBasics.TestAddDblIndex
TTestBufDatasetDBBasics.TestIndexEditRecord
TTestBufDatasetDBBasics.TestIndexAppendRecord
TTestUniDirectionalDBBasics.TestSetFieldValues
TTestUniDirectionalDBBasics.TestGetFieldValues
TTestUniDirectionalDBBasics.TestSupportIntegerFields
TTestUniDirectionalDBBasics.TestSupportSmallIntFields
TTestUniDirectionalDBBasics.TestSupportWordFields
TTestUniDirectionalDBBasics.TestSupportStringFields
TTestUniDirectionalDBBasics.TestSupportBooleanFields
TTestUniDirectionalDBBasics.TestSupportFloatFields
TTestUniDirectionalDBBasics.TestSupportLargeIntFields
TTestUniDirectionalDBBasics.TestSupportDateFields
TTestUniDirectionalDBBasics.TestSupportTimeFields
TTestUniDirectionalDBBasics.TestSupportCurrencyFields
TTestUniDirectionalDBBasics.TestSupportBCDFields
TTestUniDirectionalDBBasics.TestSupportfmtBCDFields
TTestUniDirectionalDBBasics.TestSupportFixedStringFields
TTestUniDirectionalDBBasics.TestSupportBlobFields
TTestUniDirectionalDBBasics.TestSupportMemoFields
TTestUniDirectionalDBBasics.TestDoubleClose
TTestUniDirectionalDBBasics.TestCalculatedField
TTestUniDirectionalDBBasics.TestAssignFieldftString
TTestUniDirectionalDBBasics.TestAssignFieldftFixedChar
TTestUniDirectionalDBBasics.TestSelectQueryBasics
TTestUniDirectionalDBBasics.TestPostOnlyInEditState
TTestUniDirectionalDBBasics.TestMove
TTestUniDirectionalDBBasics.TestActiveBufferWhenClosed
TTestUniDirectionalDBBasics.TestEOFBOFClosedDataset
TTestUniDirectionalDBBasics.TestLayoutChangedEvents
TTestUniDirectionalDBBasics.TestDataEventsResync
TTestUniDirectionalDBBasics.TestRecordcountAfterReopen
TTestUniDirectionalDBBasics.TestdeFieldListChange
TTestUniDirectionalDBBasics.TestExceptionLocateClosed
TTestUniDirectionalDBBasics.TestCanModifySpecialFields
TTestUniDirectionalDBBasics.TestDetectionNonMatchingDataset
TTestBufDatasetStreams.TestSimpleEditCancelUpd
TTestBufDatasetStreams.TestSimpleDeleteCancelUpd
TTestBufDatasetStreams.TestMoreDeletesCancelUpd
TTestBufDatasetStreams.TestSimpleInsertCancelUpd
TTestBufDatasetStreams.MoreInsertsCancelUpd
TTestBufDatasetStreams.SeveralEditsCancelUpd
TTestBufDatasetStreams.DeleteAllCancelUpd
TTestBufDatasetStreams.DeleteAllInsertCancelUpd
TTestBufDatasetStreams.AppendDeleteCancelUpd
TTestBufDatasetStreams.TestSimpleEditApplUpd
TTestBufDatasetStreams.TestSimpleDeleteApplUpd
TTestBufDatasetStreams.TestMoreDeletesApplUpd
TTestBufDatasetStreams.TestSimpleInsertApplUpd
TTestBufDatasetStreams.MoreInsertsApplUpd
TTestBufDatasetStreams.SeveralEditsApplUpd
TTestBufDatasetStreams.DeleteAllApplUpd
TTestBufDatasetStreams.DeleteAllInsertApplUpd
TTestBufDatasetStreams.NullInsertUpdateApplUpd
TTestBufDatasetStreams.TestBasicsXML
TTestBufDatasetStreams.TestSimpleEditXML
TTestBufDatasetStreams.TestSimpleDeleteXML
TTestBufDatasetStreams.TestMoreDeletesXML
TTestBufDatasetStreams.TestSimpleInsertXML
TTestBufDatasetStreams.TestMoreInsertsXML
TTestBufDatasetStreams.TestSeveralEditsXML
TTestBufDatasetStreams.TestDeleteAllXML
TTestBufDatasetStreams.TestDeleteAllInsertXML
TTestBufDatasetStreams.TestStreamingBlobFieldsXML
TTestBufDatasetStreams.TestStreamingBigBlobFieldsXML
TTestBufDatasetStreams.TestStreamingCalculatedFieldsXML
TTestBufDatasetStreams.TestAppendDeleteBIN
TTestBufDatasetStreams.TestFileNameProperty
TTestBufDatasetStreams.TestXmlFileRecognition
TTestBufDatasetStreams.TestCloseDatasetNoConnection
TTestDBExport.TestDBFExport_DBaseIV
TTestDBExport.TestDBFExport_DBaseVII
TTestDBExport.TestDBFExport_FoxPro
TTestDBExport.TestCSVExport
TTestDBExport.TestCSVExport_RFC4180WithHeader
TTestDBExport.TestCSVExport_TweakSettingsSemicolon
TTestDBExport.TestFixedTextExport
TTestDBExport.TestJSONExport
TTestDBExport.TestRTFExport
TTestDBExport.TestSQLExport
TTestDBExport.TestTeXExport
TTestDBExport.TestXMLExport
TTestDBExport.TestXSDExport_Access_NoXSD_DecimalOverride
TTestDBExport.TestXSDExport_Access_NoXSD_NoDecimalOverride
TTestDBExport.TestXSDExport_Access_XSD_DecimalOverride
TTestDBExport.TestXSDExport_Access_XSD_NoDecimalOverride
TTestDBExport.TestXSDExport_ADONET_NoXSD
TTestDBExport.TestXSDExport_ADONET_XSD
TTestDBExport.TestXSDExport_DelphiClientDataset
TTestDBExport.TestXSDExport_Excel

View File

@ -0,0 +1,30 @@
#!/bin/bash
echo "Compiling test framework";
fpc -glh dbtestframework.pas
if [ $? != 0 ]; then
echo "Compilation failed";
exit
fi
for f in `cat test-list.txt`
do
echo -n "Doing test $f"
./dbtestframework --suite=$f > $f-mem.txt 2>&1
grep '^0 unfreed memory blocks' $f-mem.txt >/dev/null 2>&1
EC=$?
if [ $EC = 1 ]; then
echo "Error:"
echo "Memory leak in $f"
else
if [ $EC = 0 ]; then
echo "OK, removing log file."
rm $f-mem.txt
fi
fi
done
NOTESTS=`cat test-list.txt | wc -l`
grep -L '^0 unfreed memory blocks' *-mem.txt > leaklist.txt
NOLEAKS=`cat leaklist.txt | wc -l`
echo "Failures:"
cat leaklist.txt
echo "$NOTESTS tests performed, $NOLEAKS tests have memleak"
# done