Browse Source

fcl-db: sdfdataset: fix false negative test TestInsertOnEmptyDataset. By signal in previous test, that test dataset is changed, so it can be restored to original state after test completion (ResetNDatasets).

git-svn-id: trunk@30507 -
lacak 10 years ago
parent
commit
befb6ae1ea

+ 4 - 4
packages/fcl-db/src/sdf/sdfdata.pp

@@ -387,11 +387,11 @@ begin
     FData.LoadFromFile(FileName);
   FRecordSize := FDefaultRecordLength;
   InternalInitFieldDefs;
+  if FRecordSize = 0 then
+    FRecordSize := FDefaultRecordLength;
   if DefaultFields then
     CreateFields;
   BindFields(TRUE);
-  if FRecordSize = 0 then
-    FRecordSize := FDefaultRecordLength;
   BookmarkSize := SizeOf(PtrInt);
   FRecInfoOfs := FRecordSize + CalcFieldsSize; // Initialize the offset for TRecInfo in the buffer
   FRecBufSize := FRecInfoOfs + SizeOf(TRecInfo);
@@ -480,7 +480,7 @@ end;
 function TFixedFormatDataSet.GetRecord(Buffer: TRecordBuffer; GetMode: TGetMode;
   DoCheck: Boolean): TGetResult;
 begin
-  if (FData.Count < (1+FDataOffset)) then
+  if (FData.Count <= FDataOffset) then
     Result := grEOF
   else
     Result := TxtGetRecord(Buffer, GetMode);
@@ -953,7 +953,7 @@ begin
     else
       begin
       If (FCurrec=-1) and (GetMode=gmNext) then
-        inc(FCurrec);
+        inc(FCurRec);
       Result := inherited GetRecord(Buffer, GetMode, DoCheck);
       end;
   end

+ 2 - 3
packages/fcl-db/tests/sdfdstoolsunit.pas

@@ -71,8 +71,6 @@ begin
         // work properly)
         Post;
         end;
-      if state = dsinsert then
-        Post;
       Close;
       Free;
       end;
@@ -86,9 +84,9 @@ begin
   with TSdfDataSet.Create(nil) do
     begin
     FileName := dbname+PathDelim+'fpdev_field.dat';
-      DeleteFile(FileName);
     // Make sure the directory exists so we can write
     ForceDirectories(dbname);
+    DeleteFile(FileName);
     FileMustExist:=False;
     
     SetFieldDatasetSchema(Schema);
@@ -102,6 +100,7 @@ begin
       Post;
       end;
     Close;
+    Free;
     end;
 end;
 

+ 3 - 3
packages/fcl-db/tests/testdbbasics.pas

@@ -199,7 +199,7 @@ type THackDataLink=class(TDataLink);
 
 procedure TTestCursorDBBasics.TestAppendOnEmptyDataset;
 begin
-  with DBConnector.GetNDataset(0) do
+  with DBConnector.GetNDataset(True,0) do
     begin
     open;
     CheckTrue(CanModify);
@@ -217,7 +217,7 @@ end;
 
 procedure TTestCursorDBBasics.TestInsertOnEmptyDataset;
 begin
-  with DBConnector.GetNDataset(0) do
+  with DBConnector.GetNDataset(True,0) do
     begin
     open;
     CheckTrue(CanModify);
@@ -708,7 +708,7 @@ begin
     InsertRecord([152,'TestInsRec']);
     CheckEquals(152,fields[0].AsInteger);
     CheckEquals('TestInsRec',fields[1].AsString);
-    CheckTrue(state=dsBrowse);
+    CheckTrue(State=dsBrowse);
 
     // AppendRecord should append a record, further the same as InsertRecord
     AppendRecord([151,'TestInsRec']);