1--TEST-- 2FPM: GH-8885 - access.log with stderr begins to write logs to error_log after reloading logs 3--SKIPIF-- 4<?php 5include "skipif.inc"; 6FPM\Tester::skipIfRoot(); 7?> 8--FILE-- 9<?php 10 11require_once "tester.inc"; 12 13$cfg = <<<EOT 14[global] 15error_log = {{FILE:LOG}} 16pid = {{FILE:PID}} 17[unconfined] 18listen = {{ADDR}} 19access.log=/dev/stderr 20ping.path = /ping 21ping.response = pong 22pm = dynamic 23pm.max_children = 5 24pm.start_servers = 1 25pm.min_spare_servers = 1 26pm.max_spare_servers = 3 27EOT; 28 29$tester = new FPM\Tester($cfg); 30$tester->start(forceStderr: false); 31$tester->expectNoLogMessages(); 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}}'); 44$tester->terminate(); 45$tester->expectLogTerminatingNotices(); 46$tester->switchLogSource('{{MASTER:OUT}}'); 47$tester->expectNoLogMessages(); 48$tester->close(); 49?> 50Done 51--EXPECT-- 52Done 53--CLEAN-- 54<?php 55require_once "tester.inc"; 56FPM\Tester::clean(); 57?> 58