aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/installer/binary_installer_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-25 16:44:29 +0900
committernsfisis <nsfisis@gmail.com>2026-06-26 00:20:05 +0900
commitf5f429dbae0a3e2d8224c0b1e4edcef54805d286 (patch)
tree9f837baeeae6efa0ed926b181b8c273128d86c49 /crates/shirabe/tests/installer/binary_installer_test.rs
parent3a0d9340810a8808d963135a884f50d08442ac67 (diff)
downloadphp-shirabe-f5f429dbae0a3e2d8224c0b1e4edcef54805d286.tar.gz
php-shirabe-f5f429dbae0a3e2d8224c0b1e4edcef54805d286.tar.zst
php-shirabe-f5f429dbae0a3e2d8224c0b1e4edcef54805d286.zip
feat(http): reimplement CurlDownloader on reqwest; port 15 more tests
Replace the libcurl-shim CurlDownloader with a reqwest+tokio implementation per the .ken sketch, resolving the construction panic that blocked command tests (mock path via __new_mock is untouched). Port remote_filesystem (7), hg/svn driver (4), zip_archiver/git_exclude_filter (4) tests. Fix hg/svn/git_exclude regex-delimiter and svn result-propagation porting bugs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/installer/binary_installer_test.rs')
-rw-r--r--crates/shirabe/tests/installer/binary_installer_test.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/shirabe/tests/installer/binary_installer_test.rs b/crates/shirabe/tests/installer/binary_installer_test.rs
index 7bd5eea..a3e3c24 100644
--- a/crates/shirabe/tests/installer/binary_installer_test.rs
+++ b/crates/shirabe/tests/installer/binary_installer_test.rs
@@ -20,11 +20,14 @@ impl Drop for TearDown {
}
}
-// This installs a PHP binary and then executes it via ProcessExecutor, asserting the
-// program's output. It needs a real PHP runtime, the binary-proxy generation, and a
-// mocked Package's getBinaries(), none of which are available here.
+// This installs a PHP binary (via NullIO + Package::__set_binaries + a real tempdir) and then
+// executes it through ProcessExecutor, asserting its output. Setup and binary-proxy generation
+// all work; the remaining blocker is real subprocess I/O: ProcessExecutor -> symfony Process
+// drives its pipe reads through `stream_select`/`stream_set_blocking`, both of which are still
+// `todo!()` in shirabe-php-shim (they require select(2)/fcntl(2) over the child pipe fds, which
+// the shim does not yet expose). Un-ignore once that pipe-reading layer is implemented.
#[test]
-#[ignore = "needs PHPUnit getMockBuilder mocks of IOInterface and Package::getBinaries() plus a real PHP runtime to execute the installed binary and assert its output"]
+#[ignore = "ProcessExecutor cannot read a real child's output yet: shirabe_php_shim::{stream_select, stream_set_blocking} are todo!() (need select(2)/fcntl(2) over child pipe fds)"]
fn test_install_and_exec_binary_with_full_compat() {
todo!()
}