diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-23 12:43:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-23 13:24:29 +0900 |
| commit | 0b48f4a46d24248e4c012ef37d25b5963c27a78c (patch) | |
| tree | a4c189be4419ded8e2252bc0c250aecfc66b3c36 /crates/shirabe/tests | |
| parent | 890a50de2a740cc4c4edba12b37cc9aa4d0efdc5 (diff) | |
| download | php-shirabe-0b48f4a46d24248e4c012ef37d25b5963c27a78c.tar.gz php-shirabe-0b48f4a46d24248e4c012ef37d25b5963c27a78c.tar.zst php-shirabe-0b48f4a46d24248e4c012ef37d25b5963c27a78c.zip | |
fix(fs): carry file_get_contents results as bytes
file_get_contents() and file_get_contents_with_max_length() return
Vec<u8> instead of a from_utf8_lossy'd String.
Call sites whose consumer takes a &str still convert lossily and are
marked TODO(bytes).
file_get_contents_with_max_length() now reads at most the requested
number of bytes instead of the whole file.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests')
4 files changed, 19 insertions, 4 deletions
diff --git a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs index a9b59596..50c97366 100644 --- a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs +++ b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs @@ -54,7 +54,9 @@ fn load_package( } fn read_test_file(file: &str, fixtures_dir: &str) -> IndexMap<String, String> { - let contents = shirabe_php_shim::file_get_contents(file).unwrap(); + // TODO(bytes) + let contents = + String::from_utf8_lossy(&shirabe_php_shim::file_get_contents(file).unwrap()).into_owned(); let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); // PHP section_info is a map of name => required flag. diff --git a/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs b/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs index b84d152e..928119f3 100644 --- a/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs +++ b/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs @@ -58,7 +58,9 @@ fn reduce_packages_info_for_comparison(packages: &[BasePackageHandle]) -> Vec<St } fn read_test_file(file: &str, fixtures_dir: &str) -> IndexMap<String, String> { - let contents = shirabe_php_shim::file_get_contents(file).unwrap(); + // TODO(bytes) + let contents = + String::from_utf8_lossy(&shirabe_php_shim::file_get_contents(file).unwrap()).into_owned(); let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); let section_info: Vec<&str> = vec!["TEST", "REQUEST", "POOL-BEFORE", "POOL-AFTER"]; diff --git a/crates/shirabe/tests/repository/path_repository_test.rs b/crates/shirabe/tests/repository/path_repository_test.rs index c892ddc7..9d56ec10 100644 --- a/crates/shirabe/tests/repository/path_repository_test.rs +++ b/crates/shirabe/tests/repository/path_repository_test.rs @@ -295,7 +295,11 @@ fn test_reference_config() { "sha1", &format!( "{}{}", - file_get_contents(format!("{}/composer.json", dist_url)).unwrap_or_default(), + // TODO(bytes) + String::from_utf8_lossy( + &file_get_contents(format!("{}/composer.json", dist_url)) + .unwrap_or_default() + ), serialize(&PhpMixed::Array(options.clone())) ) )) diff --git a/crates/shirabe/tests/util/remote_filesystem_test.rs b/crates/shirabe/tests/util/remote_filesystem_test.rs index d294c5d2..4421f044 100644 --- a/crates/shirabe/tests/util/remote_filesystem_test.rs +++ b/crates/shirabe/tests/util/remote_filesystem_test.rs @@ -267,7 +267,14 @@ fn test_copy() { GetResult::True )); assert!(std::path::Path::new(&file).exists()); - assert!(strpos(&file_get_contents(&file).unwrap_or_default(), "testCopy").is_some()); + // TODO(bytes) + assert!( + strpos( + &String::from_utf8_lossy(&file_get_contents(&file).unwrap_or_default()), + "testCopy" + ) + .is_some() + ); unlink(&file); } |
