ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/testsuite/Test9.pas
Revision: 143
Committed: Fri Feb 23 12:11:21 2018 UTC (6 years, 9 months ago) by tony
Content type: text/x-pascal
File size: 4632 byte(s)
Log Message:
Fixes Merged

File Contents

# Content
1 unit Test9;
2 {$IFDEF MSWINDOWS}
3 {$DEFINE WINDOWS}
4 {$ENDIF}
5
6 {$IFDEF FPC}
7 {$mode delphi}
8 {$codepage utf8}
9 {$ENDIF}
10
11 {Test 9: Database Information tests}
12
13 {
14 This test opens the employee example databases with the supplied user name/password
15 and then reads and prints all defined database information.
16 }
17
18 interface
19
20 uses
21 Classes, SysUtils, TestManager, IB;
22
23 type
24
25 { TTest9 }
26
27 TTest9 = class(TTestBase)
28 private
29 procedure GetDBInformation(Attachment: IAttachment);
30 public
31 function TestTitle: AnsiString; override;
32 procedure RunTest(CharSet: AnsiString; SQLDialect: integer); override;
33 end;
34
35 implementation
36
37 { TTest9 }
38
39 procedure TTest9.GetDBInformation(Attachment: IAttachment);
40 var DBInfo: IDBInformation;
41 DBRequest: IDIRB;
42 begin
43 {First check ODS version to avoid information requests supported DB 2.5 and later}
44 DBInfo := Attachment.GetDBInformation([isc_info_ods_version,isc_info_ods_minor_version]);
45 if (DBInfo.Count > 1) and (DBInfo[0].AsInteger > 11) or
46 ((DBInfo[0].AsInteger = 11) and (DBInfo[1].AsInteger > 1)) then
47 begin
48 WriteDBInfo(Attachment.GetDBInformation(isc_info_db_id));
49 DBInfo := Attachment.GetDBInformation([isc_info_allocation,isc_info_base_level,
50 isc_info_implementation,isc_info_no_reserve,isc_info_ods_minor_version,
51 isc_info_ods_version,isc_info_page_size,isc_info_version,isc_info_db_read_only,
52 isc_info_creation_date,fb_info_pages_used,fb_info_pages_free]);
53 WriteDBInfo(DBInfo);
54
55 DBInfo := Attachment.GetDBInformation([isc_info_current_memory, isc_info_forced_writes,
56 isc_info_max_memory, isc_info_num_buffers, isc_info_sweep_interval,
57 isc_info_user_names,isc_info_active_tran_count]);
58 WriteDBInfo(DBInfo);
59
60 DBInfo := Attachment.GetDBInformation([isc_info_fetches,isc_info_marks,
61 isc_info_reads, isc_info_writes]);
62 WriteDBInfo(DBInfo);
63
64 DBInfo := Attachment.GetDBInformation([isc_info_backout_count, isc_info_delete_count,
65 isc_info_expunge_count,isc_info_insert_count, isc_info_purge_count,
66 isc_info_read_idx_count, isc_info_read_seq_count, isc_info_update_count]);
67 WriteDBInfo(DBInfo);
68
69 DBRequest := Attachment.AllocateDIRB;
70
71 DBRequest.Add(isc_info_page_size);
72
73 {Only enable during unit test. This result will always be different for
74 each run and you will only get false positives in the log}
75 // DBRequest.Add(fb_info_page_contents).AsInteger := 100;
76 WriteDBInfo(Attachment.GetDBInformation(DBRequest));
77 end
78 else
79 begin
80 WriteDBInfo(Attachment.GetDBInformation(isc_info_db_id));
81 DBInfo := Attachment.GetDBInformation([isc_info_allocation,isc_info_base_level,
82 isc_info_implementation,isc_info_no_reserve,isc_info_ods_minor_version,
83 isc_info_ods_version,isc_info_page_size,isc_info_version,isc_info_db_read_only]);
84 WriteDBInfo(DBInfo);
85
86 DBInfo := Attachment.GetDBInformation([isc_info_current_memory, isc_info_forced_writes,
87 isc_info_max_memory, isc_info_num_buffers, isc_info_sweep_interval,
88 isc_info_user_names]);
89 WriteDBInfo(DBInfo);
90
91 DBInfo := Attachment.GetDBInformation([isc_info_fetches,isc_info_marks,
92 isc_info_reads, isc_info_writes]);
93 WriteDBInfo(DBInfo);
94
95 DBInfo := Attachment.GetDBInformation([isc_info_backout_count, isc_info_delete_count,
96 isc_info_expunge_count,isc_info_insert_count, isc_info_purge_count,
97 isc_info_read_idx_count, isc_info_read_seq_count, isc_info_update_count]);
98 WriteDBInfo(DBInfo);
99
100 DBRequest := Attachment.AllocateDIRB;
101 DBRequest.Add(isc_info_page_size);
102 WriteDBInfo(Attachment.GetDBInformation(DBRequest));
103 end;
104 end;
105
106 function TTest9.TestTitle: AnsiString;
107 begin
108 Result := 'Test 9: Database Information tests';
109 end;
110
111 procedure TTest9.RunTest(CharSet: AnsiString; SQLDialect: integer);
112 var DPB: IDPB;
113 Attachment: IAttachment;
114 begin
115 DPB := FirebirdAPI.AllocateDPB;
116 DPB.Add(isc_dpb_user_name).setAsString(Owner.GetUserName);
117 DPB.Add(isc_dpb_password).setAsString(Owner.GetPassword);
118 DPB.Add(isc_dpb_lc_ctype).setAsString(CharSet);
119 DPB.Add(isc_dpb_set_db_SQL_dialect).setAsByte(SQLDialect);
120 Attachment := FirebirdAPI.OpenDatabase(Owner.GetEmployeeDatabaseName,DPB);
121
122 GetDBInformation(Attachment);
123 end;
124
125 initialization
126 RegisterTest(TTest9);
127
128 end.
129