Skip to content

Commit a203fe4

Browse files
authored
ext/openssl: Fix remaining OpenSSL test races (#23565)
Use unique temporary file names for tests that may run concurrently, remove a CLEAN section that deletes another test's file, and replace fixed server ports with ephemeral ports.
1 parent b4b507e commit a203fe4

11 files changed

Lines changed: 21 additions & 25 deletions

ext/openssl/tests/ServerClientTestCase.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function phpt_has_sslv3() {
2424
if (!is_null($result)) {
2525
return $result;
2626
}
27-
$server = @stream_socket_server('sslv3://127.0.0.1:10013');
27+
$server = @stream_socket_server('sslv3://127.0.0.1:0');
2828
if ($result = !!$server) {
2929
fclose($server);
3030
}

ext/openssl/tests/gh20802.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ $serverCode = <<<'CODE'
2626
]
2727
]
2828
]);
29-
$server = stream_socket_server('tls://127.0.0.1:12443', $errno, $errstr, $flags, $ctx);
29+
$server = stream_socket_server('tls://127.0.0.1:0', $errno, $errstr, $flags, $ctx);
3030
phpt_notify_server_start($server);
3131
stream_socket_accept($server, 3);
3232
CODE;
@@ -42,7 +42,7 @@ $ctx = stream_context_create([
4242
'verify_peer' => false
4343
]
4444
]);
45-
@stream_socket_client("tls://127.0.0.1:12443", $errno, $errstr, 1, $flags, $ctx);
45+
@stream_socket_client("tls://{{ ADDR }}", $errno, $errstr, 1, $flags, $ctx);
4646
CODE;
4747

4848
include 'CertificateGenerator.inc';

ext/openssl/tests/openssl_error_string_basic_openssl3.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function dump_openssl_errors($name) {
5353
}
5454

5555
// common output file
56-
$output_file = __DIR__ . "/openssl_error_string_basic_output.tmp";
56+
$output_file = __DIR__ . "/openssl_error_string_basic_openssl3_output.tmp";
5757
// invalid file for read is something that does not exist in current directory
5858
$invalid_file_for_read = __DIR__ . "/invalid_file_for_read_operation.txt";
5959
// invalid file for is the test dir as writing file to existing dir should always fail
@@ -156,7 +156,7 @@ expect_openssl_errors('openssl_csr_get_subjec pem', [$err_pem_no_start_line]);
156156
?>
157157
--CLEAN--
158158
<?php
159-
$output_file = __DIR__ . "/openssl_error_string_basic_output.tmp";
159+
$output_file = __DIR__ . "/openssl_error_string_basic_openssl3_output.tmp";
160160
if (is_file($output_file)) {
161161
unlink($output_file);
162162
}

ext/openssl/tests/openssl_pkcs12_export_to_file_basic.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ openssl_pkcs12_export_to_file() tests
44
openssl
55
--FILE--
66
<?php
7-
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file__pkcsfile.tmp";
7+
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file_basic__pkcsfile.tmp";
88

99
$cert_file = __DIR__ . "/public.crt";
1010
$cert = file_get_contents($cert_file);
@@ -38,7 +38,7 @@ try {
3838
?>
3939
--CLEAN--
4040
<?php
41-
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file__pkcsfile.tmp";
41+
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file_basic__pkcsfile.tmp";
4242
if (file_exists($pkcsfile)) {
4343
unlink($pkcsfile);
4444
}

ext/openssl/tests/openssl_pkcs12_export_to_file_error.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ openssl_pkcs12_export_to_file() error tests
44
openssl
55
--FILE--
66
<?php
7-
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file__pkcsfile.tmp";
7+
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file_error__pkcsfile.tmp";
88

99
$cert_file = __DIR__ . "/public.crt";
1010
$cert = file_get_contents($cert_file);
@@ -21,7 +21,7 @@ var_dump(openssl_pkcs12_export_to_file($cert, '.', $priv, $pass));
2121
?>
2222
--CLEAN--
2323
<?php
24-
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file__pkcsfile.tmp";
24+
$pkcsfile = __DIR__ . "/openssl_pkcs12_export_to_file_error__pkcsfile.tmp";
2525
if (file_exists($pkcsfile)) {
2626
unlink($pkcsfile);
2727
}

ext/openssl/tests/session_resumption_import_export_session.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (!function_exists("proc_open")) die("skip no proc_open");
88
?>
99
--FILE--
1010
<?php
11-
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize.pem.tmp';
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_import_export.pem.tmp';
1212

1313
$serverCode = <<<'CODE'
1414
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
@@ -76,7 +76,7 @@ ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
7676
?>
7777
--CLEAN--
7878
<?php
79-
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize.pem.tmp');
79+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_import_export.pem.tmp');
8080
?>
8181
--EXPECTF--
8282
string(%d) "-----BEGIN SSL SESSION PARAMETERS-----

ext/openssl/tests/session_resumption_invalid_session_import.phpt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,5 @@ try {
1515
echo $e->getMessage() . "\n";
1616
}
1717
?>
18-
--CLEAN--
19-
<?php
20-
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_cache_disabled.pem.tmp');
21-
?>
2218
--EXPECT--
2319
Failed to import session data

ext/openssl/tests/session_resumption_serialize_session.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (!function_exists("proc_open")) die("skip no proc_open");
88
?>
99
--FILE--
1010
<?php
11-
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize.pem.tmp';
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize_session.pem.tmp';
1212

1313
$serverCode = <<<'CODE'
1414
$flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;
@@ -68,7 +68,7 @@ ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
6868
?>
6969
--CLEAN--
7070
<?php
71-
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize.pem.tmp');
71+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_resumption_serialize_session.pem.tmp');
7272
?>
7373
--EXPECTF--
7474
string(%d) "O:15:"Openssl\Session":1:{s:3:"pem";s:%d:"-----BEGIN SSL SESSION PARAMETERS-----

ext/openssl/tests/session_resumption_server_external_with_context_id.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (!function_exists("proc_open")) die("skip no proc_open");
88
?>
99
--FILE--
1010
<?php
11-
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_external_proper.pem.tmp';
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_external_context_id.pem.tmp';
1212

1313
$serverCode = <<<'CODE'
1414
$sessionStore = [];
@@ -105,7 +105,7 @@ ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
105105
?>
106106
--CLEAN--
107107
<?php
108-
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_external_proper.pem.tmp');
108+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_external_context_id.pem.tmp');
109109
?>
110110
--EXPECTF--
111111
Client first connection resumed: no

ext/openssl/tests/session_resumption_server_external_with_context_id_tls12.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (!function_exists("proc_open")) die("skip no proc_open");
88
?>
99
--FILE--
1010
<?php
11-
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_external_proper.pem.tmp';
11+
$certFile = __DIR__ . DIRECTORY_SEPARATOR . 'session_external_context_id_tls12.pem.tmp';
1212

1313
$serverCode = <<<'CODE'
1414
$sessionStore = [];
@@ -105,7 +105,7 @@ ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
105105
?>
106106
--CLEAN--
107107
<?php
108-
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_external_proper.pem.tmp');
108+
@unlink(__DIR__ . DIRECTORY_SEPARATOR . 'session_external_context_id_tls12.pem.tmp');
109109
?>
110110
--EXPECTF--
111111
Client first connection resumed: no

0 commit comments

Comments
 (0)