Skip to content

Commit 3902582

Browse files
committed
Move DB4 Matrix creation test to a function
1 parent b19b8d4 commit 3902582

File tree

2 files changed

+54
-83
lines changed

2 files changed

+54
-83
lines changed

ext/dba/tests/dba_db4_creation_matrix.phpt

Lines changed: 2 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -12,95 +12,14 @@ check_skip('db4');
1212
require_once __DIR__ . '/setup/setup_dba_tests.inc';
1313

1414
$handler = 'db4';
15-
16-
$modes = ['r', 'w', 'c', 'n'];
17-
$locks = ['l', 'd', '-', '' /* No lock flag is like 'd' */];
18-
19-
echo '=== OPENING NON-EXISTING FILE ===', \PHP_EOL;
20-
/* Trying to open a non-existing file */
21-
$db_name = $handler . '_not_existing.db';
22-
foreach ($modes as $mode) {
23-
foreach ($locks as $lock) {
24-
$arg = $mode.$lock;
25-
echo 'Mode parameter is "', $arg, '":', \PHP_EOL;
26-
$db = dba_open($db_name, $arg, $handler);
27-
if ($db !== false) {
28-
assert(file_exists($db_name));
29-
$status = dba_insert("key1", "This is a test insert", $db);
30-
if ($status) {
31-
echo dba_fetch("key1", $db), \PHP_EOL;
32-
} else {
33-
echo 'Insertion failed', \PHP_EOL;
34-
}
35-
dba_close($db);
36-
} else {
37-
echo 'Opening DB failed', \PHP_EOL;
38-
}
39-
cleanup_standard_db($db_name);
40-
}
41-
}
42-
43-
echo '=== OPENING EXISTING DB FILE ===', \PHP_EOL;
44-
/* Trying to open an existing db file */
45-
$db_name = $handler . '_existing.db';
46-
foreach ($modes as $mode) {
47-
foreach ($locks as $lock) {
48-
dba_open($db_name, 'n', $handler);
49-
$arg = $mode.$lock;
50-
echo 'Mode parameter is "', $arg, '":', \PHP_EOL;
51-
$db = dba_open($db_name, $arg, $handler);
52-
if ($db !== false) {
53-
assert(file_exists($db_name));
54-
$status = dba_insert("key1", "This is a test insert", $db);
55-
if ($status) {
56-
echo dba_fetch("key1", $db), \PHP_EOL;
57-
} else {
58-
echo 'Insertion failed', \PHP_EOL;
59-
}
60-
dba_close($db);
61-
} else {
62-
echo 'Opening DB failed', \PHP_EOL;
63-
}
64-
cleanup_standard_db($db_name);
65-
}
66-
}
67-
68-
echo '=== OPENING EXISTING RANDOM FILE ===', \PHP_EOL;
69-
/* Trying to open an existing random file */
70-
$db_name = $handler . '_random.txt';
71-
foreach ($modes as $mode) {
72-
foreach ($locks as $lock) {
73-
file_put_contents($db_name, "Dummy contents");
74-
$arg = $mode.$lock;
75-
echo 'Mode parameter is "', $arg, '":', \PHP_EOL;
76-
$db = dba_open($db_name, $arg, $handler);
77-
if ($db !== false) {
78-
assert(file_exists($db_name));
79-
$status = dba_insert("key1", "This is a test insert", $db);
80-
if ($status) {
81-
echo dba_fetch("key1", $db), \PHP_EOL;
82-
} else {
83-
echo 'Insertion failed', \PHP_EOL;
84-
}
85-
dba_close($db);
86-
} else {
87-
echo 'Opening DB failed', \PHP_EOL;
88-
}
89-
cleanup_standard_db($db_name);
90-
}
91-
}
15+
run_creation_tests($handler);
9216

9317
?>
9418
--CLEAN--
9519
<?php
9620
require_once __DIR__ . '/setup/setup_dba_tests.inc';
9721
$handler = 'db4';
98-
$db_name = $handler . '_not_existing.db';
99-
cleanup_standard_db($db_name);
100-
$db_name = $handler . '_existing.db';
101-
cleanup_standard_db($db_name);
102-
$db_name = $handler . '_random.txt';
103-
cleanup_standard_db($db_name);
22+
clean_creation_tests($handler);
10423
?>
10524
--EXPECTF--
10625
=== OPENING NON-EXISTING FILE ===

ext/dba/tests/setup/setup_dba_tests.inc

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,58 @@ function run_standard_tests_ex(string $handler, string $name, LockFlag $lock, bo
168168
*/
169169
}
170170

171+
const MODES = ['r', 'w', 'c', 'n'];
172+
const LOCKS = ['l', 'd', '-', '' /* No lock flag is like 'd' */];
173+
function run_creation_tests_ex(string $handler, string $file_suffix, string $pre_req): void
174+
{
175+
$db_name = $handler . $file_suffix;
176+
foreach (MODES as $mode) {
177+
foreach (LOCKS as $lock) {
178+
eval($pre_req);
179+
$arg = $mode.$lock;
180+
echo 'Mode parameter is "', $arg, '":', \PHP_EOL;
181+
$db = dba_open($db_name, $arg, $handler);
182+
if ($db !== false) {
183+
assert(file_exists($db_name));
184+
$status = dba_insert("key1", "This is a test insert", $db);
185+
if ($status) {
186+
echo dba_fetch("key1", $db), \PHP_EOL;
187+
} else {
188+
echo 'Insertion failed', \PHP_EOL;
189+
}
190+
dba_close($db);
191+
} else {
192+
echo 'Opening DB failed', \PHP_EOL;
193+
}
194+
cleanup_standard_db($db_name);
195+
}
196+
}
197+
}
198+
199+
function run_creation_tests(string $handler): void
200+
{
201+
/* Trying to open a non-existing file */
202+
echo '=== OPENING NON-EXISTING FILE ===', \PHP_EOL;
203+
run_creation_tests_ex($handler, '_not_existing.db', '');
204+
205+
/* Trying to open an existing db file */
206+
echo '=== OPENING EXISTING DB FILE ===', \PHP_EOL;
207+
run_creation_tests_ex($handler, '_existing.db', 'dba_open($db_name, "n", $handler);');
208+
209+
/* Trying to open an existing random file */
210+
echo '=== OPENING EXISTING RANDOM FILE ===', \PHP_EOL;
211+
run_creation_tests_ex($handler, '_random.txt', 'file_put_contents($db_name, "Dummy contents");');
212+
}
213+
214+
function clean_creation_tests(string $handler): void {
215+
$db_name = $handler . '_not_existing.db';
216+
cleanup_standard_db($db_name);
217+
$db_name = $handler . '_existing.db';
218+
cleanup_standard_db($db_name);
219+
$db_name = $handler . '_random.txt';
220+
cleanup_standard_db($db_name);
221+
}
222+
171223
function run_standard_tests(string $handler, string $name): void {
172224
echo '=== RUNNING WITH FILE LOCK ===', \PHP_EOL;
173225
ob_start();

0 commit comments

Comments
 (0)