Skip to content

Commit c1bf2a3

Browse files
authored
Merge pull request #75 from clue-labs/php8.5
Run tests on PHP 8.5 and update test environment
2 parents 52695d4 + db92d97 commit c1bf2a3

File tree

6 files changed

+121
-44
lines changed

6 files changed

+121
-44
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ jobs:
1212
matrix:
1313
os:
1414
- ubuntu-24.04
15-
- windows-2022
15+
- windows-2025
1616
php:
17+
- 8.5
1718
- 8.4
1819
- 8.3
1920
- 8.2
@@ -28,7 +29,7 @@ jobs:
2829
- 5.5
2930
- 5.4
3031
exclude: # ignore flaky results for legacy PHP on Windows
31-
- os: windows-2022
32+
- os: windows-2025
3233
php: 5.4
3334
steps:
3435
- uses: actions/checkout@v3
@@ -46,7 +47,7 @@ jobs:
4647
- run: vendor/bin/phpunit --coverage-text --coverage-clover=clover.xml -c phpunit.xml.legacy
4748
if: ${{ matrix.php < 7.3 }}
4849
- name: Check 100% code coverage
49-
if: ${{ matrix.os != 'windows-2022' }}
50+
if: ${{ matrix.os != 'windows-2025' }}
5051
shell: php {0}
5152
run: |
5253
<?php

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
"php": ">=5.4",
1515
"ext-sqlite3": "*",
1616
"clue/ndjson-react": "^1.0",
17-
"react/child-process": "^0.6.6",
18-
"react/event-loop": "^1.2",
19-
"react/promise": "^3.2 || ^2.7 || ^1.2.1"
17+
"react/child-process": "^0.6.7",
18+
"react/event-loop": "^1.6",
19+
"react/promise": "^3.3 || ^2.7 || ^1.2.1"
2020
},
2121
"require-dev": {
2222
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"

tests/FactoryTest.php

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ public function testConstructWithoutLoopAssignsLoopAutomatically()
1212
$factory = new Factory();
1313

1414
$ref = new \ReflectionProperty($factory, 'loop');
15-
$ref->setAccessible(true);
15+
if (PHP_VERSION_ID < 80100) {
16+
$ref->setAccessible(true);
17+
}
1618
$loop = $ref->getValue($factory);
1719

1820
$this->assertInstanceOf('React\EventLoop\LoopInterface', $loop);
@@ -24,11 +26,15 @@ public function testConstructWitLoopAndBinaryAssignsBothVariables()
2426
$factory = new Factory($loop, 'php6.0');
2527

2628
$ref = new \ReflectionProperty($factory, 'loop');
27-
$ref->setAccessible(true);
29+
if (PHP_VERSION_ID < 80100) {
30+
$ref->setAccessible(true);
31+
}
2832
$this->assertSame($loop, $ref->getValue($factory));
2933

3034
$ref = new \ReflectionProperty($factory, 'bin');
31-
$ref->setAccessible(true);
35+
if (PHP_VERSION_ID < 80100) {
36+
$ref->setAccessible(true);
37+
}
3238
$this->assertSame('php6.0', $ref->getValue($factory));
3339
}
3440

@@ -64,7 +70,9 @@ public function testLoadLazyWithIdleOptionsReturnsDatabaseWithIdleTimeApplied()
6470
$db = $factory->openLazy(':memory:', null, ['idle' => 10.0]);
6571

6672
$ref = new \ReflectionProperty($db, 'idlePeriod');
67-
$ref->setAccessible(true);
73+
if (PHP_VERSION_ID < 80100) {
74+
$ref->setAccessible(true);
75+
}
6876
$value = $ref->getValue($db);
6977

7078
$this->assertEquals(10.0, $value);
@@ -78,7 +86,9 @@ public function testLoadLazyWithAbsolutePathWillBeUsedAsIs()
7886
$db = $factory->openLazy(__DIR__ . '/users.db');
7987

8088
$ref = new \ReflectionProperty($db, 'filename');
81-
$ref->setAccessible(true);
89+
if (PHP_VERSION_ID < 80100) {
90+
$ref->setAccessible(true);
91+
}
8292
$value = $ref->getValue($db);
8393

8494
$this->assertEquals(__DIR__ . '/users.db', $value);
@@ -92,7 +102,9 @@ public function testLoadLazyWithMemoryPathWillBeUsedAsIs()
92102
$db = $factory->openLazy(':memory:');
93103

94104
$ref = new \ReflectionProperty($db, 'filename');
95-
$ref->setAccessible(true);
105+
if (PHP_VERSION_ID < 80100) {
106+
$ref->setAccessible(true);
107+
}
96108
$value = $ref->getValue($db);
97109

98110
$this->assertEquals(':memory:', $value);
@@ -106,7 +118,9 @@ public function testLoadLazyWithEmptyPathWillBeUsedAsIs()
106118
$db = $factory->openLazy('');
107119

108120
$ref = new \ReflectionProperty($db, 'filename');
109-
$ref->setAccessible(true);
121+
if (PHP_VERSION_ID < 80100) {
122+
$ref->setAccessible(true);
123+
}
110124
$value = $ref->getValue($db);
111125

112126
$this->assertEquals('', $value);
@@ -127,7 +141,9 @@ public function testLoadLazyWithRelativePathWillBeResolvedWhenConstructingAndWil
127141
chdir('../');
128142

129143
$ref = new \ReflectionProperty($db, 'filename');
130-
$ref->setAccessible(true);
144+
if (PHP_VERSION_ID < 80100) {
145+
$ref->setAccessible(true);
146+
}
131147
$value = $ref->getValue($db);
132148

133149
chdir($original);

tests/FunctionalDatabaseTest.php

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ public function testOpenMemoryDatabaseResolvesWithDatabaseAndRunsUntilClose($php
5353

5454
if ($useSocket !== null) {
5555
$ref = new \ReflectionProperty($factory, 'useSocket');
56-
$ref->setAccessible(true);
56+
if (PHP_VERSION_ID < 80100) {
57+
$ref->setAccessible(true);
58+
}
5759
$ref->setValue($factory, $useSocket);
5860
}
5961

@@ -81,7 +83,9 @@ public function testOpenMemoryDatabaseResolvesWithDatabaseAndRunsUntilQuit($php,
8183

8284
if ($useSocket !== null) {
8385
$ref = new \ReflectionProperty($factory, 'useSocket');
84-
$ref->setAccessible(true);
86+
if (PHP_VERSION_ID < 80100) {
87+
$ref->setAccessible(true);
88+
}
8589
$ref->setValue($factory, $useSocket);
8690
}
8791

@@ -149,7 +153,9 @@ public function testOpenInvalidPathRejects($php, $useSocket)
149153

150154
if ($useSocket !== null) {
151155
$ref = new \ReflectionProperty($factory, 'useSocket');
152-
$ref->setAccessible(true);
156+
if (PHP_VERSION_ID < 80100) {
157+
$ref->setAccessible(true);
158+
}
153159
$ref->setValue($factory, $useSocket);
154160
}
155161

@@ -174,7 +180,9 @@ public function testOpenInvalidPathWithNullByteRejects($php, $useSocket)
174180

175181
if ($useSocket !== null) {
176182
$ref = new \ReflectionProperty($factory, 'useSocket');
177-
$ref->setAccessible(true);
183+
if (PHP_VERSION_ID < 80100) {
184+
$ref->setAccessible(true);
185+
}
178186
$ref->setValue($factory, $useSocket);
179187
}
180188

@@ -199,7 +207,9 @@ public function testOpenInvalidFlagsRejects($php, $useSocket)
199207

200208
if ($useSocket !== null) {
201209
$ref = new \ReflectionProperty($factory, 'useSocket');
202-
$ref->setAccessible(true);
210+
if (PHP_VERSION_ID < 80100) {
211+
$ref->setAccessible(true);
212+
}
203213
$ref->setValue($factory, $useSocket);
204214
}
205215

@@ -224,7 +234,9 @@ public function testQuitResolvesAndRunsUntilQuit($php, $useSocket)
224234

225235
if ($useSocket !== null) {
226236
$ref = new \ReflectionProperty($factory, 'useSocket');
227-
$ref->setAccessible(true);
237+
if (PHP_VERSION_ID < 80100) {
238+
$ref->setAccessible(true);
239+
}
228240
$ref->setValue($factory, $useSocket);
229241
}
230242

@@ -254,7 +266,9 @@ public function testQuitResolvesAndRunsUntilQuitWhenParentHasManyFileDescriptors
254266

255267
if ($useSocket !== null) {
256268
$ref = new \ReflectionProperty($factory, 'useSocket');
257-
$ref->setAccessible(true);
269+
if (PHP_VERSION_ID < 80100) {
270+
$ref->setAccessible(true);
271+
}
258272
$ref->setValue($factory, $useSocket);
259273
}
260274

@@ -283,7 +297,9 @@ public function testQuitTwiceWillRejectSecondCall($php, $useSocket)
283297

284298
if ($useSocket !== null) {
285299
$ref = new \ReflectionProperty($factory, 'useSocket');
286-
$ref->setAccessible(true);
300+
if (PHP_VERSION_ID < 80100) {
301+
$ref->setAccessible(true);
302+
}
287303
$ref->setValue($factory, $useSocket);
288304
}
289305

@@ -309,7 +325,9 @@ public function testQueryIntegerResolvesWithResultWithTypeIntegerAndRunsUntilQui
309325

310326
if ($useSocket !== null) {
311327
$ref = new \ReflectionProperty($factory, 'useSocket');
312-
$ref->setAccessible(true);
328+
if (PHP_VERSION_ID < 80100) {
329+
$ref->setAccessible(true);
330+
}
313331
$ref->setValue($factory, $useSocket);
314332
}
315333

@@ -340,7 +358,9 @@ public function testQueryStringResolvesWithResultWithTypeStringAndRunsUntilQuit(
340358

341359
if ($useSocket !== null) {
342360
$ref = new \ReflectionProperty($factory, 'useSocket');
343-
$ref->setAccessible(true);
361+
if (PHP_VERSION_ID < 80100) {
362+
$ref->setAccessible(true);
363+
}
344364
$ref->setValue($factory, $useSocket);
345365
}
346366

@@ -371,7 +391,9 @@ public function testQueryInvalidTableRejectsWithExceptionAndRunsUntilQuit($php,
371391

372392
if ($useSocket !== null) {
373393
$ref = new \ReflectionProperty($factory, 'useSocket');
374-
$ref->setAccessible(true);
394+
if (PHP_VERSION_ID < 80100) {
395+
$ref->setAccessible(true);
396+
}
375397
$ref->setValue($factory, $useSocket);
376398
}
377399

@@ -402,7 +424,9 @@ public function testQueryInvalidTableWithPlaceholderRejectsWithExceptionAndRunsU
402424

403425
if ($useSocket !== null) {
404426
$ref = new \ReflectionProperty($factory, 'useSocket');
405-
$ref->setAccessible(true);
427+
if (PHP_VERSION_ID < 80100) {
428+
$ref->setAccessible(true);
429+
}
406430
$ref->setValue($factory, $useSocket);
407431
}
408432

@@ -604,7 +628,9 @@ public function testQueryRejectsWhenQueryIsInvalid($php, $useSocket)
604628

605629
if ($useSocket !== null) {
606630
$ref = new \ReflectionProperty($factory, 'useSocket');
607-
$ref->setAccessible(true);
631+
if (PHP_VERSION_ID < 80100) {
632+
$ref->setAccessible(true);
633+
}
608634
$ref->setValue($factory, $useSocket);
609635
}
610636

@@ -629,7 +655,9 @@ public function testQueryRejectsWhenClosedImmediately($useSocket)
629655
$factory = new Factory();
630656

631657
$ref = new \ReflectionProperty($factory, 'useSocket');
632-
$ref->setAccessible(true);
658+
if (PHP_VERSION_ID < 80100) {
659+
$ref->setAccessible(true);
660+
}
633661
$ref->setValue($factory, $useSocket);
634662

635663
$promise = $factory->open(':memory:');
@@ -655,7 +683,9 @@ public function testExecCreateTableResolvesWithResultWithoutRows($php, $useSocke
655683

656684
if ($useSocket !== null) {
657685
$ref = new \ReflectionProperty($factory, 'useSocket');
658-
$ref->setAccessible(true);
686+
if (PHP_VERSION_ID < 80100) {
687+
$ref->setAccessible(true);
688+
}
659689
$ref->setValue($factory, $useSocket);
660690
}
661691

@@ -686,7 +716,9 @@ public function testExecRejectsWhenClosedImmediately($php, $useSocket)
686716

687717
if ($useSocket !== null) {
688718
$ref = new \ReflectionProperty($factory, 'useSocket');
689-
$ref->setAccessible(true);
719+
if (PHP_VERSION_ID < 80100) {
720+
$ref->setAccessible(true);
721+
}
690722
$ref->setValue($factory, $useSocket);
691723
}
692724

@@ -713,7 +745,9 @@ public function testExecRejectsWhenAlreadyClosed($php, $useSocket)
713745

714746
if ($useSocket !== null) {
715747
$ref = new \ReflectionProperty($factory, 'useSocket');
716-
$ref->setAccessible(true);
748+
if (PHP_VERSION_ID < 80100) {
749+
$ref->setAccessible(true);
750+
}
717751
$ref->setValue($factory, $useSocket);
718752
}
719753

@@ -739,7 +773,9 @@ public function testQueryInsertResolvesWithEmptyResultSetWithLastInsertIdAndRuns
739773

740774
if ($useSocket !== null) {
741775
$ref = new \ReflectionProperty($factory, 'useSocket');
742-
$ref->setAccessible(true);
776+
if (PHP_VERSION_ID < 80100) {
777+
$ref->setAccessible(true);
778+
}
743779
$ref->setValue($factory, $useSocket);
744780
}
745781

@@ -774,7 +810,9 @@ public function testQuerySelectEmptyResolvesWithEmptyResultSetWithColumnsAndNoRo
774810

775811
if ($useSocket !== null) {
776812
$ref = new \ReflectionProperty($factory, 'useSocket');
777-
$ref->setAccessible(true);
813+
if (PHP_VERSION_ID < 80100) {
814+
$ref->setAccessible(true);
815+
}
778816
$ref->setValue($factory, $useSocket);
779817
}
780818

@@ -802,7 +840,9 @@ public function testCancelOpenWithSocketRejectsPromise()
802840
$factory = new Factory();
803841

804842
$ref = new \ReflectionProperty($factory, 'useSocket');
805-
$ref->setAccessible(true);
843+
if (PHP_VERSION_ID < 80100) {
844+
$ref->setAccessible(true);
845+
}
806846
$ref->setValue($factory, true);
807847

808848
$promise = $factory->open(':memory:');
@@ -830,7 +870,9 @@ public function testOpenWithSocketWillRejectWhenSocketConnectionTimesOut()
830870
$factory = new Factory($loop);
831871

832872
$ref = new \ReflectionProperty($factory, 'useSocket');
833-
$ref->setAccessible(true);
873+
if (PHP_VERSION_ID < 80100) {
874+
$ref->setAccessible(true);
875+
}
834876
$ref->setValue($factory, true);
835877

836878
$promise = $factory->open(':memory:');

tests/FunctionalFactoryTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ public function testOpenReturnsPromiseWhichRejectsWithExceptionWhenExplicitPhpBi
7272
$factory = new Factory(null, 'echo');
7373

7474
$ref = new \ReflectionProperty($factory, 'useSocket');
75-
$ref->setAccessible(true);
75+
if (PHP_VERSION_ID < 80100) {
76+
$ref->setAccessible(true);
77+
}
7678
$ref->setValue($factory, true);
7779

7880
$promise = $factory->open(':memory:');

0 commit comments

Comments
 (0)