ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/testsuite/Test11.pas
(Generate patch)

Comparing ibx/trunk/fbintf/testsuite/Test11.pas (file contents):
Revision 45 by tony, Tue Dec 6 10:33:46 2016 UTC vs.
Revision 380 by tony, Mon Jan 10 10:13:17 2022 UTC

# Line 1 | Line 1
1 + (*
2 + *  Firebird Interface (fbintf) Test suite. This program is used to
3 + *  test the Firebird Pascal Interface and provide a semi-automated
4 + *  pass/fail check for each test.
5 + *
6 + *  The contents of this file are subject to the Initial Developer's
7 + *  Public License Version 1.0 (the "License"); you may not use this
8 + *  file except in compliance with the License. You may obtain a copy
9 + *  of the License here:
10 + *
11 + *    http://www.firebirdsql.org/index.php?op=doc&id=idpl
12 + *
13 + *  Software distributed under the License is distributed on an "AS
14 + *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
15 + *  implied. See the License for the specific language governing rights
16 + *  and limitations under the License.
17 + *
18 + *  The Initial Developer of the Original Code is Tony Whyman.
19 + *
20 + *  The Original Code is (C) 2016 Tony Whyman, MWA Software
21 + *  (http://www.mwasoftware.co.uk).
22 + *
23 + *  All Rights Reserved.
24 + *
25 + *  Contributor(s): ______________________________________.
26 + *
27 + *)
28 +
29   unit Test11;
30 + {$IFDEF MSWINDOWS}
31 + {$DEFINE WINDOWS}
32 + {$ENDIF}
33  
34 < {$mode objfpc}{$H+}
34 > {$IFDEF FPC}
35 > {$mode delphi}
36   {$codepage utf8}
37 + {$ENDIF}
38  
39   {Test 11: Services API}
40  
# Line 25 | Line 58 | unit Test11;
58   interface
59  
60   uses
61 <  Classes, SysUtils, TestManager, IB;
61 >  Classes, SysUtils, TestApplication, FBTestApp, IB;
62  
63   type
64  
65    { TTest11 }
66  
67 <  TTest11 = class(TTestBase)
67 >  TTest11 = class(TFBTestBase)
68    private
69 <    procedure GetStatistics(Service: IServiceManager; DBName: string);
70 <    procedure BackupRestore(Service: IServiceManager; DBName: string);
69 >    procedure GetStatistics(Service: IServiceManager; DBName: AnsiString);
70 >    procedure BackupRestore(Service: IServiceManager; DBName: AnsiString);
71    public
72 <    function TestTitle: string; override;
73 <    procedure RunTest(CharSet: string; SQLDialect: integer); override;
72 >    function TestTitle: AnsiString; override;
73 >    procedure RunTest(CharSet: AnsiString; SQLDialect: integer); override;
74    end;
75  
76   implementation
77  
78   { TTest11 }
79  
80 < procedure TTest11.GetStatistics(Service: IServiceManager; DBName: string);
80 > procedure TTest11.GetStatistics(Service: IServiceManager; DBName: AnsiString);
81   var Req: ISRB;
82      Results: IServiceQueryResults;
83   begin
# Line 158 | Line 191 | begin
191    writeln(OutFile);
192   end;
193  
194 < procedure TTest11.BackupRestore(Service: IServiceManager; DBName: string);
194 > procedure TTest11.BackupRestore(Service: IServiceManager; DBName: AnsiString);
195   var Req: ISRB;
196      Results: IServiceQueryResults;
197      BakFile: TFileStream;
# Line 167 | Line 200 | var Req: ISRB;
200      SQPB: ISQPB;
201      bytesWritten: integer;
202      bytesAvailable: integer;
203 <    i: integer;
171 <    RestoreDBName: string;
203 >    RestoreDBName: AnsiString;
204      Attachment: IAttachment;
205      DPB: IDPB;
206   begin
# Line 191 | Line 223 | begin
223          QueryResultsItem := Results.Find(isc_info_svc_to_eof);
224          if QueryResultsItem <> nil then
225            bytesWritten := QueryResultsItem.CopyTo(BakFile,0);
226 <      until (bytesWritten = 0) or not WriteServiceQueryResult(Results);
226 >      until ((bytesWritten = 0) and (Results.Find(isc_info_svc_timeout) = nil))
227 >        or not WriteServiceQueryResult(Results);
228        writeln(OutFile,'Local Backup Complete');
229      finally
230        BakFile.Free;
# Line 203 | Line 236 | begin
236  
237    {Local Restore}
238    writeln(OutFile,'Local Restore');
239 <  RestoreDBName := Owner.GetNewDatabaseName;
207 <  i := Pos(':',RestoreDBName);
208 <  if i > 0 then
209 <    system.Delete(RestoreDBName,1,i);
239 >  RestoreDBName := ExtractDBName(Owner.GetNewDatabaseName);
240    Req := Service.AllocateSRB;
241    Req.Add(isc_action_svc_restore);
242    Req.Add(isc_spb_dbname).AsString := RestoreDBName;
# Line 224 | Line 254 | begin
254          SQPB := Service.AllocateSQPB;
255          if ReqLength > 0 then
256              bytesWritten := SQPB.Add(isc_info_svc_line).CopyFrom(BakFile,ReqLength);
257 <        bytesAvailable -= bytesWritten;
257 >        bytesAvailable := bytesAvailable - bytesWritten;
258          Req := Service.AllocateSRB;
259          Req.Add(isc_info_svc_stdin);
260          Req.Add(isc_info_svc_line);
# Line 253 | Line 283 | begin
283    writeln(OutFile,'Database Dropped');
284   end;
285  
286 < function TTest11.TestTitle: string;
286 > function TTest11.TestTitle: AnsiString;
287   begin
288    Result := 'Test 11: Services API';
289   end;
290  
291 < procedure TTest11.RunTest(CharSet: string; SQLDialect: integer);
291 > procedure TTest11.RunTest(CharSet: AnsiString; SQLDialect: integer);
292   var SPB: ISPB;
293      Service: IServiceManager;
294 <    I: integer;
295 <    ServerName: string;
266 <    DBName: string;
294 >    ServerName: AnsiString;
295 >    DBName: AnsiString;
296   begin
297    if not FirebirdAPI.HasServiceAPI then Exit;
298  
299 <  ServerName := Owner.GetEmployeeDatabaseName;
300 <  I := Pos(':',ServerName);
272 <  if i > 0 then
273 <    DBName := system.copy(ServerName,i+1,length(ServerName) - 2);
274 <  system.Delete(ServerName,i,Length(ServerName)-i+1);
299 >  DBName := ExtractDBName(Owner.GetEmployeeDatabaseName);
300 >  ServerName := Owner.Server;
301  
302    SPB := FirebirdAPI.AllocateSPB;
303    SPB.Add(isc_spb_user_name).setAsString(Owner.GetUserName);
304    SPB.Add(isc_spb_password).setAsString(Owner.GetPassword);
305    Service := FirebirdAPI.GetServiceManager(ServerName,TCP,SPB);
306 +  PrintSPB(Service.getSPB);
307  
308    GetStatistics(Service,DBName);
309    BackupRestore(Service,DBName);

Comparing ibx/trunk/fbintf/testsuite/Test11.pas (property svn:eol-style):
Revision 45 by tony, Tue Dec 6 10:33:46 2016 UTC vs.
Revision 380 by tony, Mon Jan 10 10:13:17 2022 UTC

# Line 0 | Line 1
1 + native

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines