diff --git a/.gitattributes b/.gitattributes index 88676a315b..f3fe033724 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/packages/fcl-db/tests/reruntest.sh b/packages/fcl-db/tests/reruntest.sh new file mode 100755 index 0000000000..d9a4043282 --- /dev/null +++ b/packages/fcl-db/tests/reruntest.sh @@ -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 +# +# + diff --git a/packages/fcl-db/tests/test-list.txt b/packages/fcl-db/tests/test-list.txt new file mode 100644 index 0000000000..6b55cc8ffc --- /dev/null +++ b/packages/fcl-db/tests/test-list.txt @@ -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 diff --git a/packages/fcl-db/tests/testleaks.sh b/packages/fcl-db/tests/testleaks.sh new file mode 100755 index 0000000000..55f3a43778 --- /dev/null +++ b/packages/fcl-db/tests/testleaks.sh @@ -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