diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-21 00:51:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-21 00:51:34 +0900 |
| commit | 7bea9042a79d3cbfe31cc2595e8b8c6a3788ba15 (patch) | |
| tree | 3ed5b522c21f8fd80249f02751e46264537620f7 /crates/shirabe/tests/package | |
| parent | a01e3a45d1b183ee7fe9ca45543b0663d5995faa (diff) | |
| download | php-shirabe-7bea9042a79d3cbfe31cc2595e8b8c6a3788ba15.tar.gz php-shirabe-7bea9042a79d3cbfe31cc2595e8b8c6a3788ba15.tar.zst php-shirabe-7bea9042a79d3cbfe31cc2595e8b8c6a3788ba15.zip | |
test: port small leaf tests (config, filters, platform, formatter)
Port DefaultConfigTest, IgnoreAll/IgnoreNothingPlatformRequirementFilterTest,
PlatformTest, GitExcludeFilterTest, and HtmlOutputFormatterTest. Each PHP
Test/<Subdir>/ maps to a single integration-test binary via tests/<dir>/main.rs
(the target is named after the directory) whose #[test] functions are collected
from the module tree.
Tests that exercise unported library behavior (regex backreferences,
Preg::split, env expansion) are marked #[ignore].
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/package')
| -rw-r--r-- | crates/shirabe/tests/package/archiver/git_exclude_filter_test.rs | 33 | ||||
| -rw-r--r-- | crates/shirabe/tests/package/archiver/mod.rs | 1 | ||||
| -rw-r--r-- | crates/shirabe/tests/package/main.rs | 1 |
3 files changed, 35 insertions, 0 deletions
diff --git a/crates/shirabe/tests/package/archiver/git_exclude_filter_test.rs b/crates/shirabe/tests/package/archiver/git_exclude_filter_test.rs index 63374c4..431cb4f 100644 --- a/crates/shirabe/tests/package/archiver/git_exclude_filter_test.rs +++ b/crates/shirabe/tests/package/archiver/git_exclude_filter_test.rs @@ -1 +1,34 @@ //! ref: composer/tests/Composer/Test/Package/Archiver/GitExcludeFilterTest.php + +use shirabe::package::archiver::git_exclude_filter::GitExcludeFilter; + +#[test] +#[ignore = "Preg::split panics on the `\\s+` pattern in the regex-crate-based shim"] +fn test_pattern_escape() { + for (ignore, expected) in provide_patterns() { + let filter = GitExcludeFilter::new("/".to_string()); + + assert_eq!(expected, filter.parse_git_attributes_line(ignore)); + } +} + +fn provide_patterns() -> Vec<(&'static str, Option<(String, bool, bool)>)> { + vec![ + ( + "app/config/parameters.yml export-ignore", + Some(( + r"{(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml(?=$|/)}".to_string(), + false, + false, + )), + ), + ( + "app/config/parameters.yml -export-ignore", + Some(( + r"{(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml(?=$|/)}".to_string(), + true, + false, + )), + ), + ] +} diff --git a/crates/shirabe/tests/package/archiver/mod.rs b/crates/shirabe/tests/package/archiver/mod.rs new file mode 100644 index 0000000..b77fb71 --- /dev/null +++ b/crates/shirabe/tests/package/archiver/mod.rs @@ -0,0 +1 @@ +mod git_exclude_filter_test; diff --git a/crates/shirabe/tests/package/main.rs b/crates/shirabe/tests/package/main.rs new file mode 100644 index 0000000..64b2cc7 --- /dev/null +++ b/crates/shirabe/tests/package/main.rs @@ -0,0 +1 @@ +mod archiver; |
