THRIFT-5048 EnumUtils<T>.ToString() throws for elements not known to the receiving end [ci skip]
Client: Delphi
Patch: Jens Geyer
diff --git a/lib/delphi/test/skip/skiptest_version2.dpr b/lib/delphi/test/skip/skiptest_version2.dpr
index 07c2c9a..478ea7c 100644
--- a/lib/delphi/test/skip/skiptest_version2.dpr
+++ b/lib/delphi/test/skip/skiptest_version2.dpr
@@ -30,6 +30,7 @@
Thrift.Transport in '..\..\src\Thrift.Transport.pas',
Thrift.Protocol in '..\..\src\Thrift.Protocol.pas',
Thrift.Protocol.JSON in '..\..\src\Thrift.Protocol.JSON.pas',
+ Thrift.Protocol.Compact in '..\..\src\Thrift.Protocol.Compact.pas',
Thrift.Collections in '..\..\src\Thrift.Collections.pas',
Thrift.Configuration in '..\..\src\Thrift.Configuration.pas',
Thrift.Server in '..\..\src\Thrift.Server.pas',
@@ -42,12 +43,15 @@
REQUEST_EXT = '.request';
RESPONSE_EXT = '.response';
+
function CreatePing : IPing;
var list : IThriftList<IPong>;
set_ : IHashSet<string>;
begin
result := TPingImpl.Create;
result.Version1 := Tskiptest_version_2Constants.SKIPTESTSERVICE_VERSION;
+ result.EnumTest := TPingPongEnum.PingTwo;
+
result.BoolVal := TRUE;
result.ByteVal := 2;
result.DbVal := 3;
@@ -59,6 +63,7 @@
result.StructVal := TPongImpl.Create;
result.StructVal.Version1 := -1;
result.StructVal.Version2 := -2;
+ result.StructVal.EnumTest := TPingPongEnum.PongTwo;
list := TThriftListImpl<IPong>.Create;
list.Add( result.StructVal);
@@ -87,6 +92,7 @@
// TSkipTestService.Iface
begin
Writeln('- performing request from version '+IntToStr(ping.Version1)+' client');
+ Writeln( ping.ToString);
result := CreatePing;
end;
@@ -143,7 +149,7 @@
Writeln('- reading response');
stm := TFileStream.Create( fname+RESPONSE_EXT, fmOpenRead);
try
- // save request data
+ // load request data
proto := CreateProtocol( protfact, stm, TRUE);
client := TSkipTestService.TClient.Create( proto, nil);
cliRef := client as IUnknown;
@@ -191,12 +197,16 @@
procedure Test( protfact : IProtocolFactory; fname : string);
begin
// try to read an existing request
+ Writeln;
+ Writeln('Reading data file '+fname);
if FileExists( fname + REQUEST_EXT) then begin
ProcessFile( protfact, fname);
ReadResponse( protfact, fname);
end;
// create a new request and try to process
+ Writeln;
+ Writeln('Writing data file '+fname);
CreateRequest( protfact, fname);
ProcessFile( protfact, fname);
ReadResponse( protfact, fname);
@@ -204,8 +214,9 @@
const
- FILE_BINARY = 'pingpong.bin';
- FILE_JSON = 'pingpong.json';
+ FILE_BINARY = 'pingpong.bin';
+ FILE_JSON = 'pingpong.json';
+ FILE_COMPACT = 'pingpong.compact';
begin
try
Writeln( 'Delphi SkipTest '+IntToStr(Tskiptest_version_2Constants.SKIPTESTSERVICE_VERSION)+' using '+Thrift.Version);
@@ -219,6 +230,10 @@
Test( TJSONProtocolImpl.TFactory.Create, FILE_JSON);
Writeln;
+ Writeln('Compact protocol');
+ Test( TCompactProtocolImpl.TFactory.Create, FILE_COMPACT);
+
+ Writeln;
Writeln('Test completed without errors.');
Writeln;
Write('Press ENTER to close ...'); Readln;