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

Comparing ibx/trunk/fbintf/testsuite/Test9.pas (file contents):
Revision 45 by tony, Tue Dec 6 10:33:46 2016 UTC vs.
Revision 402 by tony, Mon Aug 1 10:07:24 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 Test9;
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 9: Database Information tests}
40  
# Line 13 | Line 46 | unit Test9;
46   interface
47  
48   uses
49 <  Classes, SysUtils, TestManager, IB;
49 >  Classes, SysUtils, TestApplication, FBTestApp, IB;
50  
51   type
52  
53    { TTest9 }
54  
55 <  TTest9 = class(TTestBase)
55 >  TTest9 = class(TFBTestBase)
56    private
57      procedure GetDBInformation(Attachment: IAttachment);
58    public
59 <    function TestTitle: string; override;
60 <    procedure RunTest(CharSet: string; SQLDialect: integer); override;
59 >    function TestTitle: AnsiString; override;
60 >    procedure RunTest(CharSet: AnsiString; SQLDialect: integer); override;
61    end;
62  
63   implementation
# Line 33 | Line 66 | implementation
66  
67   procedure TTest9.GetDBInformation(Attachment: IAttachment);
68   var DBInfo: IDBInformation;
69 +    DBRequest: IDIRB;
70   begin
71 <    DBInfo := Attachment.GetDBInformation([isc_info_db_id,isc_info_allocation,isc_info_base_level,
71 >  {First check ODS version to avoid information requests supported DB 2.5 and later}
72 >  DBInfo := Attachment.GetDBInformation([isc_info_ods_version,isc_info_ods_minor_version]);
73 >  if (DBInfo.Count > 1) and (DBInfo[0].AsInteger > 11) or
74 >     ((DBInfo[0].AsInteger = 11) and (DBInfo[1].AsInteger > 1)) then
75 >  begin
76 >    WriteDBInfo(Attachment.GetDBInformation(isc_info_db_id));
77 >    DBInfo := Attachment.GetDBInformation([isc_info_allocation,isc_info_base_level,
78                                isc_info_implementation,isc_info_no_reserve,isc_info_ods_minor_version,
79 <                              isc_info_ods_version,isc_info_page_size,isc_info_version]);
79 >                              isc_info_ods_version,isc_info_page_size,isc_info_version,isc_info_db_read_only,
80 >                              isc_info_creation_date,fb_info_pages_used,fb_info_pages_free]);
81 >    WriteDBInfo(DBInfo);
82 >
83 >    DBInfo := Attachment.GetDBInformation([isc_info_current_memory, isc_info_forced_writes,
84 >                              isc_info_max_memory, isc_info_num_buffers, isc_info_sweep_interval,
85 >                              isc_info_user_names,isc_info_active_tran_count]);
86 >    WriteDBInfo(DBInfo);
87 >
88 >    DBInfo := Attachment.GetDBInformation([isc_info_fetches,isc_info_marks,
89 >                              isc_info_reads, isc_info_writes]);
90 >    WriteDBInfo(DBInfo);
91 >
92 >    DBInfo := Attachment.GetDBInformation([isc_info_backout_count, isc_info_delete_count,
93 >                              isc_info_expunge_count,isc_info_insert_count, isc_info_purge_count,
94 >                              isc_info_read_idx_count, isc_info_read_seq_count, isc_info_update_count]);
95 >    WriteDBInfo(DBInfo);
96 >
97 >    DBRequest := Attachment.AllocateDIRB;
98 >
99 >    DBRequest.Add(isc_info_page_size);
100 >
101 >    {Only enable during unit test. This result will always be different for
102 >     each run and you will only get false positives in the log}
103 > //    DBRequest.Add(fb_info_page_contents).AsInteger := 100;
104 >    WriteDBInfo(Attachment.GetDBInformation(DBRequest));
105 >  end
106 >  else
107 >  begin
108 >    WriteDBInfo(Attachment.GetDBInformation(isc_info_db_id));
109 >    DBInfo := Attachment.GetDBInformation([isc_info_allocation,isc_info_base_level,
110 >                              isc_info_implementation,isc_info_no_reserve,isc_info_ods_minor_version,
111 >                              isc_info_ods_version,isc_info_page_size,isc_info_version,isc_info_db_read_only]);
112      WriteDBInfo(DBInfo);
113  
114      DBInfo := Attachment.GetDBInformation([isc_info_current_memory, isc_info_forced_writes,
# Line 52 | Line 124 | begin
124                                isc_info_expunge_count,isc_info_insert_count, isc_info_purge_count,
125                                isc_info_read_idx_count, isc_info_read_seq_count, isc_info_update_count]);
126      WriteDBInfo(DBInfo);
127 +
128 +    DBRequest := Attachment.AllocateDIRB;
129 +    DBRequest.Add(isc_info_page_size);
130 +    WriteDBInfo(Attachment.GetDBInformation(DBRequest));
131 +  end;
132   end;
133  
134 < function TTest9.TestTitle: string;
134 > function TTest9.TestTitle: AnsiString;
135   begin
136    Result := 'Test 9: Database Information tests';
137   end;
138  
139 < procedure TTest9.RunTest(CharSet: string; SQLDialect: integer);
139 > procedure TTest9.RunTest(CharSet: AnsiString; SQLDialect: integer);
140   var DPB: IDPB;
141      Attachment: IAttachment;
142   begin
# Line 67 | Line 144 | begin
144    DPB.Add(isc_dpb_user_name).setAsString(Owner.GetUserName);
145    DPB.Add(isc_dpb_password).setAsString(Owner.GetPassword);
146    DPB.Add(isc_dpb_lc_ctype).setAsString(CharSet);
70  DPB.Add(isc_dpb_set_db_SQL_dialect).setAsByte(SQLDialect);
147    Attachment := FirebirdAPI.OpenDatabase(Owner.GetEmployeeDatabaseName,DPB);
148  
149    GetDBInformation(Attachment);

Comparing ibx/trunk/fbintf/testsuite/Test9.pas (property svn:eol-style):
Revision 45 by tony, Tue Dec 6 10:33:46 2016 UTC vs.
Revision 402 by tony, Mon Aug 1 10:07:24 2022 UTC

# Line 0 | Line 1
1 + native

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines