Skip to content

Commit dce3480

Browse files
committed
poll: fix test reporting of unpexpected events when array present
1 parent d939aa1 commit dce3480

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

ext/standard/tests/streams/stream_poll.inc

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ function pt_print_events($events, $read_data = false): void {
102102
echo "\n";
103103
}
104104
}
105+
105106
function pt_expect_events($events, $expected, $poll_ctx = null): void {
106107
if (!is_array($events)) {
107108
die("Events must be an array\n");
@@ -114,15 +115,15 @@ function pt_expect_events($events, $expected, $poll_ctx = null): void {
114115
$event_count = count($events);
115116
$expected_count = count($expected);
116117

118+
// Get current backend name for backend-specific expectations
119+
$backend_name = $poll_ctx ? stream_poll_backend_name($poll_ctx) : 'unknown';
120+
117121
if ($event_count !== $expected_count) {
118122
echo "Event count mismatch: got $event_count, expected $expected_count\n";
119-
pt_print_mismatched_events($events, $expected);
123+
pt_print_mismatched_events($events, $expected, [], $backend_name);
120124
return;
121125
}
122126

123-
// Get current backend name for backend-specific expectations
124-
$backend_name = $poll_ctx ? stream_poll_backend_name($poll_ctx) : 'unknown';
125-
126127
// Convert events to comparable format for matching
127128
$actual_events = [];
128129
foreach ($events as $event) {
@@ -190,7 +191,7 @@ function pt_expect_events($events, $expected, $poll_ctx = null): void {
190191
echo "Events matched - count: $event_count\n";
191192
} else {
192193
echo "Events did not match:\n";
193-
pt_print_mismatched_events($events, $resolved_expected, $matched);
194+
pt_print_mismatched_events($events, $expected, $matched, $backend_name);
194195
}
195196
}
196197

@@ -229,7 +230,7 @@ function pt_event_flags_to_string($flags): string {
229230
return empty($names) ? 'NONE' : implode('|', $names);
230231
}
231232

232-
function pt_print_mismatched_events($actual_events, $expected_events, $matched = []): void {
233+
function pt_print_mismatched_events($actual_events, $expected_events, $matched = [], $backend_name = null): void {
233234
echo "Actual events:\n";
234235
foreach ($actual_events as $i => $event) {
235236
$match_status = isset($matched[$i]) ? " [MATCHED]" : " [UNMATCHED]";
@@ -241,7 +242,13 @@ function pt_print_mismatched_events($actual_events, $expected_events, $matched =
241242
foreach ($expected_events as $i => $exp_event) {
242243
$was_matched = in_array($i, $matched);
243244
$match_status = $was_matched ? " [MATCHED]" : " [UNMATCHED]";
244-
$event_names = pt_event_flags_to_string($exp_event['events']);
245+
246+
$events_value = $exp_event['events'];
247+
if (is_array($events_value) && $backend_name !== null) {
248+
$events_value = pt_resolve_backend_specific_value($events_value, $backend_name);
249+
}
250+
251+
$event_names = pt_event_flags_to_string($events_value);
245252
echo " Event[$i]: $event_names, user data: " . $exp_event['data'];
246253
if (isset($exp_event['read'])) {
247254
echo ", read data: '" . $exp_event['read'] . "'";

0 commit comments

Comments
 (0)