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} |
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: AnsiString); |
70 |
|
procedure BackupRestore(Service: IServiceManager; DBName: AnsiString); |
200 |
|
SQPB: ISQPB; |
201 |
|
bytesWritten: integer; |
202 |
|
bytesAvailable: integer; |
175 |
– |
i: integer; |
203 |
|
RestoreDBName: AnsiString; |
204 |
|
Attachment: IAttachment; |
205 |
|
DPB: IDPB; |
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; |
236 |
|
|
237 |
|
{Local Restore} |
238 |
|
writeln(OutFile,'Local Restore'); |
239 |
< |
RestoreDBName := Owner.GetNewDatabaseName; |
212 |
< |
i := Pos(':',RestoreDBName); |
213 |
< |
if i > 0 then |
214 |
< |
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; |
291 |
|
procedure TTest11.RunTest(CharSet: AnsiString; SQLDialect: integer); |
292 |
|
var SPB: ISPB; |
293 |
|
Service: IServiceManager; |
269 |
– |
I: integer; |
294 |
|
ServerName: AnsiString; |
295 |
|
DBName: AnsiString; |
296 |
|
begin |
297 |
|
if not FirebirdAPI.HasServiceAPI then Exit; |
298 |
|
|
299 |
< |
ServerName := Owner.GetEmployeeDatabaseName; |
300 |
< |
I := Pos(':',ServerName); |
277 |
< |
if i > 0 then |
278 |
< |
DBName := system.copy(ServerName,i+1,length(ServerName) - 2); |
279 |
< |
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); |