1
1
--TEST--
2
- FPM: GH-8885 - access.log with stderr begins to write logs to error_log after daemon reload
2
+ FPM: GH-8885 - access.log with stderr begins to write logs to error_log after reloading logs
3
3
--SKIPIF--
4
4
<?php
5
5
include "skipif.inc " ;
@@ -26,60 +26,25 @@ pm.min_spare_servers = 1
26
26
pm.max_spare_servers = 3
27
27
EOT ;
28
28
29
- // php-fpm must not be launched with --force-stderr option
30
- $ tester = new FPM \Tester ($ cfg , '' , [FPM \Tester::PHP_FPM_DISABLE_FORCE_STDERR => true ]);
31
- // getPrefixedFile('err.log') is the same path that returns processTemplate('{{FILE:LOG}}')
32
- $ errorLogFile = $ tester ->getPrefixedFile ('err.log ' );
33
-
34
- $ tester ->start ();
35
- $ tester ->expectNoLogMessages ();
36
-
37
- $ content = file_get_contents ($ errorLogFile );
38
- assert ($ content !== false && strlen ($ content ) > 0 , 'File must not be empty ' );
39
-
40
- $ errorLogLines = explode ("\n" , $ content );
41
- array_pop ($ errorLogLines );
42
-
43
- assert (count ($ errorLogLines ) === 2 , 'Expected 2 records in the error_log file ' );
44
- assert (strpos ($ errorLogLines [0 ], 'NOTICE: fpm is running, pid ' ));
45
- assert (strpos ($ errorLogLines [1 ], 'NOTICE: ready to handle connections ' ));
46
-
47
- $ tester ->ping ('{{ADDR}} ' );
48
- $ stderrLines = $ tester ->getLogLines (-1 );
49
- assert (count ($ stderrLines ) === 1 , 'Expected 1 record in the stderr output (access.log) ' );
50
- $ stderrLine = $ stderrLines [0 ];
51
- assert (preg_match ('/127.0.0.1 .* "GET \/ping" 200$/ ' , $ stderrLine ), 'Incorrect format of access.log record ' );
52
-
53
- $ tester ->signal ('USR1 ' );
29
+ $ tester = new FPM \Tester ($ cfg );
30
+ $ tester ->start (forceStderr: false );
54
31
$ tester ->expectNoLogMessages ();
55
-
56
- $ content = file_get_contents ($ errorLogFile );
57
- assert ($ content !== false && strlen ($ content ) > 0 , 'File must not be empty ' );
58
- $ errorLogLines = explode ("\n" , $ content );
59
- array_pop ($ errorLogLines );
60
-
61
- assert (count ($ errorLogLines ) >= 4 , 'Expected at least 4 records in the error_log file ' );
62
- assert (strpos ($ errorLogLines [0 ], 'NOTICE: fpm is running, pid ' ));
63
- assert (strpos ($ errorLogLines [1 ], 'NOTICE: ready to handle connections ' ));
64
- assert (strpos ($ errorLogLines [2 ], 'NOTICE: error log file re-opened ' ));
65
- assert (strpos ($ errorLogLines [3 ], 'NOTICE: access log file re-opened ' ));
66
-
67
-
68
- $ tester ->ping ('{{ADDR}} ' );
69
- $ stderrLines = $ tester ->getLogLines (-1 );
70
- assert (count ($ stderrLines ) === 1 , 'Must be only 1 record in the access.log ' );
71
- assert (preg_match ('/127.0.0.1 .* "GET \/ping" 200$/ ' , $ stderrLines [0 ]), 'Incorrect format of access.log record ' );
72
-
32
+ $ tester ->switchLogSource ('{{FILE:LOG}} ' );
33
+ $ tester ->expectLogStartNotices ();
34
+ $ tester ->ping ();
35
+ $ tester ->switchLogSource ('{{MASTER:OUT}} ' );
36
+ $ tester ->expectLogPattern ('/127.0.0.1 .* "GET \/ping" 200/ ' );
37
+ $ tester ->reloadLogs ();
38
+ $ tester ->switchLogSource ('{{FILE:LOG}} ' );
39
+ $ tester ->expectLogReloadingLogsNotices ();
40
+ $ tester ->ping ();
41
+ $ tester ->switchLogSource ('{{MASTER:OUT}} ' );
42
+ $ tester ->expectLogPattern ('/127.0.0.1 .* "GET \/ping" 200/ ' );
43
+ $ tester ->switchLogSource ('{{FILE:LOG}} ' );
73
44
$ tester ->terminate ();
74
- $ stderrLines = $ tester ->expectNoLogMessages ();
75
-
76
- $ content = file_get_contents ($ errorLogFile );
77
- assert ($ content !== false && strlen ($ content ) > 0 , 'File must not be empty ' );
78
- $ errorLogLines = explode ("\n" , $ content );
79
- array_pop ($ errorLogLines );
80
- $ errorLogLastLine = array_pop ($ errorLogLines );
81
- assert (strpos ($ errorLogLastLine , 'NOTICE: exiting, bye-bye ' ));
82
-
45
+ $ tester ->expectLogTerminatingNotices ();
46
+ $ tester ->switchLogSource ('{{MASTER:OUT}} ' );
47
+ $ tester ->expectNoLogMessages ();
83
48
$ tester ->close ();
84
49
?>
85
50
Done
0 commit comments