From 2b2ca914cc5f2f7fde3b6e75faabbe4913fd7264 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 21 Jun 2026 12:40:10 +0900 Subject: test(tests): port setUp/tearDown as set_up/tear_down with TearDown Port PHP setUp/tearDown across the ported integration tests using same-named set_up()/tear_down() functions and a TearDown struct whose Drop runs tear_down(). Fixture-init setUp returns its fixtures; tmpdir-style setUp/tearDown carry state in TearDown fields. Parts that depend on unported infrastructure (PHPUnit mocks, Config::merge, the PHP error handler) stay todo!() and are only wired into ignored stubs to avoid breaking live tests. Also fix shirabe-php-shim putenv to handle the no-'=' form (PHP unsets the variable), which Platform::clear_env relies on for the env-clearing tearDowns. Co-Authored-By: Claude Opus 4.8 --- crates/shirabe/tests/util/ini_helper_test.rs | 35 +++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'crates/shirabe/tests/util/ini_helper_test.rs') diff --git a/crates/shirabe/tests/util/ini_helper_test.rs b/crates/shirabe/tests/util/ini_helper_test.rs index e214a78..59dc967 100644 --- a/crates/shirabe/tests/util/ini_helper_test.rs +++ b/crates/shirabe/tests/util/ini_helper_test.rs @@ -1,7 +1,40 @@ //! ref: composer/tests/Composer/Test/Util/IniHelperTest.php use shirabe::util::ini_helper::IniHelper; -use shirabe_php_shim::{PATH_SEPARATOR, putenv}; +use shirabe::util::platform::Platform; +use shirabe_php_shim::{PATH_SEPARATOR, getenv, putenv}; + +#[allow(dead_code)] +fn set_up() -> TearDown { + // Register our name with XdebugHandler. + // TODO: XdebugHandler is the external composer/xdebug-handler package and is not ported. + todo!(); + // Save current state + #[allow(unreachable_code)] + let env_original = getenv("COMPOSER_ORIGINAL_INIS"); + TearDown { env_original } +} + +#[allow(dead_code)] +fn tear_down(env_original: &Option) { + // Restore original state + if let Some(env_original) = env_original { + putenv(&format!("COMPOSER_ORIGINAL_INIS={env_original}")); + } else { + Platform::clear_env("COMPOSER_ORIGINAL_INIS"); + } +} + +#[allow(dead_code)] +struct TearDown { + env_original: Option, +} + +impl Drop for TearDown { + fn drop(&mut self) { + tear_down(&self.env_original); + } +} fn set_env(paths: &[&str]) { putenv(&format!( -- cgit v1.3.1