فهرست منبع

* Script to test for memory leaks

git-svn-id: trunk@24771 -
michael 12 سال پیش
والد
کامیت
998da11ecd
4فایلهای تغییر یافته به همراه313 افزوده شده و 0 حذف شده
  1. 3 0
      .gitattributes
  2. 19 0
      packages/fcl-db/tests/reruntest.sh
  3. 261 0
      packages/fcl-db/tests/test-list.txt
  4. 30 0
      packages/fcl-db/tests/testleaks.sh

+ 3 - 0
.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

+ 19 - 0
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  
+#
+#
+  

+ 261 - 0
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

+ 30 - 0
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