summaryrefslogtreecommitdiff
path: root/avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp
diff options
context:
space:
mode:
Diffstat (limited to 'avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp')
-rw-r--r--avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp111
1 files changed, 111 insertions, 0 deletions
diff --git a/avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp b/avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp
new file mode 100644
index 0000000000..2de0ddb4fe
--- /dev/null
+++ b/avx512-0037785/packages/fcl-registry/tests/regtcxmlreg.pp
@@ -0,0 +1,111 @@
+unit regtcxmlreg;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ fpcunit, testutils, testregistry, testdecorator, Classes, SysUtils, xmlreg;
+
+Type
+
+ { TTestXMLRegistry }
+
+ TTestXMLRegistry = Class(TTestCase)
+ private
+ FXMLReg: TXmlRegistry;
+ Protected
+ Procedure Setup; override;
+ Procedure TearDown; override;
+ Property XMLReg : TXmlRegistry Read FXMLReg;
+ Published
+ Procedure TestReadBufDataDWord;
+ Procedure TestReadBufDataString;
+ Procedure TestReadBufDataBinary;
+ end;
+
+
+implementation
+
+{ TTestXMLRegistry }
+
+procedure TTestXMLRegistry.Setup;
+begin
+ inherited Setup;
+ DeleteFile('test.xml');
+ FXMLReg:=TXmlRegistry.Create('test.xml');
+end;
+
+procedure TTestXMLRegistry.TearDown;
+begin
+ FreeAndNil(FXMLReg);
+ DeleteFile('test.xml');
+ inherited TearDown;
+end;
+
+procedure TTestXMLRegistry.TestReadBufDataDWord;
+
+Var
+ C : Cardinal;
+ I : Smallint;
+ DS : Integer;
+ dt : TDataType;
+
+begin
+ XMLReg.SetKey('a',True);
+ C:=123456;
+ XMLReg.SetValueData('b',dtDWORD,C,SizeOf(C));
+ XMLReg.Flush;
+ DS:=SizeOf(SmallInt);
+ AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,I,ds));
+ AssertTrue('Correct data type reported',dt=dtDWord);
+ AssertEquals('Correct data buffer size reported',SizeOf(C),DS);
+
+end;
+
+procedure TTestXMLRegistry.TestReadBufDataString;
+
+Var
+ S1,S2 : String;
+ DS : Integer;
+ dt : TDataType;
+
+begin
+ XMLReg.SetKey('a',True);
+ S1:=StringOfChar('*',100);
+ XMLReg.SetValueData('b',dtString,S1[1],Length(S1));
+ XMLReg.Flush;
+ DS:=SizeOf(S1) div 2;
+ S2:=StringOfChar('*',DS);
+ AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,S2[1],ds));
+ AssertTrue('Correct data type reported',dt=dtString);
+ AssertEquals('Correct data buffer size reported',Length(S1),DS);
+end;
+
+procedure TTestXMLRegistry.TestReadBufDataBinary;
+Var
+ S1,S2 : Array of byte;
+ I : Smallint;
+ DS : Integer;
+ dt : TDataType;
+
+begin
+ XMLReg.SetKey('a',True);
+ SetLength(S1,100);
+ For I:=0 to 99 do
+ S1[I]:=i;
+ XMLReg.SetValueData('b',dtBinary,S1[0],Length(S1));
+ XMLReg.Flush;
+ DS:=Length(S1) div 4;
+ SetLength(S2,DS);
+ For I:=0 to DS-1 do
+ S2[I]:=i;
+ AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,S2[0],DS));
+ AssertTrue('Correct data type reported',dt=dtBinary);
+ AssertEquals('Correct data buffer size reported',Length(S1),DS);
+end;
+
+begin
+ RegisterTest(TTestXMLRegistry);
+end.
+