From 0b48f4a46d24248e4c012ef37d25b5963c27a78c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 23 Aug 2026 12:43:10 +0900 Subject: fix(fs): carry file_get_contents results as bytes file_get_contents() and file_get_contents_with_max_length() return Vec 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) --- crates/shirabe/tests/dependency_resolver/pool_builder_test.rs | 4 +++- crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs | 4 +++- crates/shirabe/tests/repository/path_repository_test.rs | 6 +++++- crates/shirabe/tests/util/remote_filesystem_test.rs | 9 ++++++++- 4 files changed, 19 insertions(+), 4 deletions(-) (limited to 'crates/shirabe/tests') 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 { - 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 IndexMap { - 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); } -- cgit v1.3.1-4-g156e