From 087865ef50283350a3cc74a5363ba44fa7dbe5c5 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 20 Jul 2026 08:13:12 +0900 Subject: feat(php-rpc): implement phpinfo() capture over RPC DiagnoseCommand::check_platform needed phpinfo() output but shirabe-php-shim's ob_start()/phpinfo()/ob_get_clean() are unmodeled todo!()s. Add a phpinfo dispatch entry to the PHP worker (capturing output the same way extension_info already does) and a get_phpinfo() wrapper, then switch check_platform to call it directly. This unblocks the phpinfo-related panic in diagnose; the ignored tests now hit a separate RefCell double-borrow bug in check_http, so their ignore reasons are updated to point at that instead. --- crates/shirabe/src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'crates/shirabe/src/lib.rs') diff --git a/crates/shirabe/src/lib.rs b/crates/shirabe/src/lib.rs index b5e58d08..4d17f6c6 100644 --- a/crates/shirabe/src/lib.rs +++ b/crates/shirabe/src/lib.rs @@ -182,10 +182,10 @@ mod cli_tests { run_config => "config", run_create_project => "create-project", run_depends => "depends", - #[ignore = "DiagnoseCommand::check_platform captures phpinfo() via ob_start()/ob_get_clean(), \ - which are todo!() in shirabe-php-shim (PHP output buffering and runtime \ - introspection are unmodeled), so the command panics; same root cause as \ - tests/command/diagnose_command_test.rs"] + #[ignore = "DiagnoseCommand::check_http passes &config.borrow() into a call chain that \ + reaches CurlDownloader::download, which then does self.config.borrow_mut() on \ + the same Config RefCell, panicking with 'RefCell already borrowed'; same root \ + cause as tests/command/diagnose_command_test.rs"] run_diagnose => "diagnose", run_dump_autoload => "dump-autoload", run_exec => "exec", -- cgit v1.3.1