diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-21 12:40:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-21 12:40:10 +0900 |
| commit | 2b2ca914cc5f2f7fde3b6e75faabbe4913fd7264 (patch) | |
| tree | ff8bbb00238526c376f521647adc9ea9f486b84c /crates/shirabe/tests/package | |
| parent | 4b92ecafd7634ad99aa432d58fbc1958d1f01270 (diff) | |
| download | php-shirabe-2b2ca914cc5f2f7fde3b6e75faabbe4913fd7264.tar.gz php-shirabe-2b2ca914cc5f2f7fde3b6e75faabbe4913fd7264.tar.zst php-shirabe-2b2ca914cc5f2f7fde3b6e75faabbe4913fd7264.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/package')
6 files changed, 114 insertions, 4 deletions
diff --git a/crates/shirabe/tests/package/archiver/archivable_files_finder_test.rs b/crates/shirabe/tests/package/archiver/archivable_files_finder_test.rs index 381c032..dcca80a 100644 --- a/crates/shirabe/tests/package/archiver/archivable_files_finder_test.rs +++ b/crates/shirabe/tests/package/archiver/archivable_files_finder_test.rs @@ -1,5 +1,29 @@ //! ref: composer/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php +/// Builds a temp directory tree of fixture files under a unique tmp dir; the Filesystem and +/// getUniqueTmpDirectory infrastructure is not ported. +#[allow(dead_code)] +fn set_up() -> String { + todo!() +} + +#[allow(dead_code)] +fn tear_down(_sources: &str) { + // Removes the temp directory tree created in set_up. + todo!() +} + +#[allow(dead_code)] +struct TearDown { + sources: String, +} + +impl Drop for TearDown { + fn drop(&mut self) { + tear_down(&self.sources); + } +} + // These set up a temp directory tree (including a git repo) and assert the files the finder // selects with manual/git/skip excludes; the git-backed fixture setup is not ported. macro_rules! stub { diff --git a/crates/shirabe/tests/package/archiver/archive_manager_test.rs b/crates/shirabe/tests/package/archiver/archive_manager_test.rs index 5f9e413..912512d 100644 --- a/crates/shirabe/tests/package/archiver/archive_manager_test.rs +++ b/crates/shirabe/tests/package/archiver/archive_manager_test.rs @@ -1,5 +1,30 @@ //! ref: composer/tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php +/// Builds an ArchiveManager via Factory/DownloadManager/Loop and derives targetDir under a +/// unique tmp dir (testDir); none of that factory/fixture infrastructure is ported. +/// Returns (test_dir, target_dir). +#[allow(dead_code)] +fn set_up() -> (String, String) { + todo!() +} + +#[allow(dead_code)] +fn tear_down(_test_dir: &str) { + // Removes testDir created in set_up. + todo!() +} + +#[allow(dead_code)] +struct TearDown { + test_dir: String, +} + +impl Drop for TearDown { + fn drop(&mut self) { + tear_down(&self.test_dir); + } +} + // These drive ArchiveManager end-to-end (building tar archives via PharData, todo!()) and // the filename-derivation helpers over packages; the archiving and fixture setup are not // ported. diff --git a/crates/shirabe/tests/package/archiver/zip_archiver_test.rs b/crates/shirabe/tests/package/archiver/zip_archiver_test.rs index 1c884d8..5f41c78 100644 --- a/crates/shirabe/tests/package/archiver/zip_archiver_test.rs +++ b/crates/shirabe/tests/package/archiver/zip_archiver_test.rs @@ -1,5 +1,30 @@ //! ref: composer/tests/Composer/Test/Package/Archiver/ZipArchiverTest.php +/// Creates the Filesystem/ProcessExecutor and a unique tmp testDir; that infrastructure is +/// not ported. Returns testDir. +#[allow(dead_code)] +fn set_up() -> String { + todo!() +} + +/// Unlinks the zip files collected in filesToCleanup, then (parent) removes testDir. +#[allow(dead_code)] +fn tear_down(_files_to_cleanup: &[String], _test_dir: &str) { + todo!() +} + +#[allow(dead_code)] +struct TearDown { + files_to_cleanup: Vec<String>, + test_dir: String, +} + +impl Drop for TearDown { + fn drop(&mut self) { + tear_down(&self.files_to_cleanup, &self.test_dir); + } +} + // ZipArchiver::archive builds a zip via ZipArchive, which is todo!() in the php-shim. #[test] diff --git a/crates/shirabe/tests/package/dumper/array_dumper_test.rs b/crates/shirabe/tests/package/dumper/array_dumper_test.rs index c89f5ed..6ed12fe 100644 --- a/crates/shirabe/tests/package/dumper/array_dumper_test.rs +++ b/crates/shirabe/tests/package/dumper/array_dumper_test.rs @@ -6,6 +6,10 @@ use shirabe::package::handle::{CompletePackageHandle, RootPackageHandle}; use shirabe_php_shim::PhpMixed; use shirabe_semver::version_parser::VersionParser; +fn set_up() -> ArrayDumper { + ArrayDumper::new() +} + fn complete_package() -> CompletePackageHandle { let norm = VersionParser.normalize("1.0.0", None).unwrap(); CompletePackageHandle::new("dummy/pkg".to_string(), norm, "1.0.0".to_string()) @@ -18,7 +22,8 @@ fn root_package() -> RootPackageHandle { #[test] fn test_required_information() { - let config = ArrayDumper::new().dump(complete_package().into()); + let dumper = set_up(); + let config = dumper.dump(complete_package().into()); let mut expected: IndexMap<String, PhpMixed> = IndexMap::new(); expected.insert( @@ -37,10 +42,11 @@ fn test_required_information() { #[test] fn test_root_package() { + let dumper = set_up(); let package = root_package(); package.set_minimum_stability("dev".to_string()); - let config = ArrayDumper::new().dump(package.into()); + let config = dumper.dump(package.into()); assert_eq!( Some(&PhpMixed::String("dev".to_string())), @@ -50,20 +56,22 @@ fn test_root_package() { #[test] fn test_dump_abandoned() { + let dumper = set_up(); let package = complete_package(); package.set_abandoned(PhpMixed::Bool(true)); - let config = ArrayDumper::new().dump(package.into()); + let config = dumper.dump(package.into()); assert_eq!(Some(&PhpMixed::Bool(true)), config.get("abandoned")); } #[test] fn test_dump_abandoned_replacement() { + let dumper = set_up(); let package = complete_package(); package.set_abandoned(PhpMixed::String("foo/bar".to_string())); - let config = ArrayDumper::new().dump(package.into()); + let config = dumper.dump(package.into()); assert_eq!( Some(&PhpMixed::String("foo/bar".to_string())), diff --git a/crates/shirabe/tests/package/loader/array_loader_test.rs b/crates/shirabe/tests/package/loader/array_loader_test.rs index fce85a7..79b5d78 100644 --- a/crates/shirabe/tests/package/loader/array_loader_test.rs +++ b/crates/shirabe/tests/package/loader/array_loader_test.rs @@ -1,5 +1,11 @@ //! ref: composer/tests/Composer/Test/Package/Loader/ArrayLoaderTest.php +use shirabe::package::loader::ArrayLoader; + +fn set_up() -> ArrayLoader { + ArrayLoader::new(None, false) +} + // ArrayLoader::load parses version/link constraints through a look-around regex the regex // crate cannot compile. macro_rules! stub { @@ -7,6 +13,7 @@ macro_rules! stub { #[test] #[ignore = "ArrayLoader::load parses constraints via a look-around regex the regex crate cannot compile"] fn $name() { + let _loader = set_up(); todo!() } }; diff --git a/crates/shirabe/tests/package/version/version_guesser_test.rs b/crates/shirabe/tests/package/version/version_guesser_test.rs index ef4b232..9b974dd 100644 --- a/crates/shirabe/tests/package/version/version_guesser_test.rs +++ b/crates/shirabe/tests/package/version/version_guesser_test.rs @@ -1,5 +1,26 @@ //! ref: composer/tests/Composer/Test/Package/Version/VersionGuesserTest.php +#[allow(dead_code)] +fn set_up() { + // Resets GitUtil's cached `version` static via ReflectionProperty; the static is not + // exposed here and reflection-based mutation has no ported equivalent. + todo!() +} + +#[allow(dead_code)] +fn tear_down() { + todo!() +} + +#[allow(dead_code)] +struct TearDown; + +impl Drop for TearDown { + fn drop(&mut self) { + tear_down(); + } +} + // These drive VersionGuesser with a mocked ProcessExecutor feeding git/hg command output; // mocking is not available here. macro_rules! stub { |
