aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/installed_versions_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-25 13:43:49 +0900
committernsfisis <nsfisis@gmail.com>2026-06-25 23:47:47 +0900
commit4573629d9fc7321171cd8b134e68869950b02045 (patch)
tree1c1786537f71c6c61bca5fb0bba90fe1e722eac0 /crates/shirabe/tests/installed_versions_test.rs
parent8d6b521e0034d1bcba594921ebc4f74e87e5ef46 (diff)
downloadphp-shirabe-4573629d9fc7321171cd8b134e68869950b02045.tar.gz
php-shirabe-4573629d9fc7321171cd8b134e68869950b02045.tar.zst
php-shirabe-4573629d9fc7321171cd8b134e68869950b02045.zip
feat(semver): hand-port constraint AND-split to drop look-around regex
The PCRE delimiter `(?<!^|as|[=>< ,]) *(?<!-)[, ](?!-) *(?!,|as|$)` used to split AND-constraints relies on look-around, which the regex crate cannot compile (parse_constraints panicked). Reproduce its semantics in a hand-written `split_and_constraints` scanner shared by VersionParser and RootPackageLoader. Also model `method_exists` for the class-name form (shirabe runs no dumped Composer ClassLoader) and un-ignore the InstalledVersions tests, serialized via `#[serial]` since they share global static state. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/installed_versions_test.rs')
-rw-r--r--crates/shirabe/tests/installed_versions_test.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/crates/shirabe/tests/installed_versions_test.rs b/crates/shirabe/tests/installed_versions_test.rs
index 20c3a85..4de2730 100644
--- a/crates/shirabe/tests/installed_versions_test.rs
+++ b/crates/shirabe/tests/installed_versions_test.rs
@@ -7,6 +7,7 @@
// IndexMap<String, PhpMixed> with the tmp root substituted for `$dir`.
use indexmap::IndexMap;
+use serial_test::serial;
use shirabe::installed_versions::InstalledVersions;
use shirabe_php_shim::{PhpMixed, realpath};
use shirabe_semver::VersionParser;
@@ -163,7 +164,7 @@ fn set_up() -> (TempDir, String) {
(root, dir)
}
-#[ignore]
+#[serial]
#[test]
fn test_get_installed_packages() {
let (_root, _dir) = set_up();
@@ -182,7 +183,7 @@ fn test_get_installed_packages() {
assert_eq!(names, InstalledVersions::get_installed_packages());
}
-#[ignore]
+#[serial]
#[test]
fn test_is_installed() {
let (_root, _dir) = set_up();
@@ -206,7 +207,7 @@ fn test_is_installed() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_satisfies() {
let (_root, _dir) = set_up();
@@ -241,7 +242,7 @@ fn test_satisfies() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_get_version_ranges() {
let (_root, _dir) = set_up();
@@ -265,7 +266,7 @@ fn test_get_version_ranges() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_get_version() {
let (_root, _dir) = set_up();
@@ -289,7 +290,7 @@ fn test_get_version() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_get_pretty_version() {
let (_root, _dir) = set_up();
@@ -313,7 +314,7 @@ fn test_get_pretty_version() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_get_version_out_of_bounds() {
let (_root, _dir) = set_up();
@@ -321,7 +322,7 @@ fn test_get_version_out_of_bounds() {
assert!(InstalledVersions::get_version("not/installed").is_err());
}
-#[ignore]
+#[serial]
#[test]
fn test_get_root_package() {
let (_root, dir) = set_up();
@@ -342,7 +343,7 @@ fn test_get_root_package() {
assert_eq!(expected, InstalledVersions::get_root_package());
}
-#[ignore]
+#[serial]
#[test]
fn test_get_raw_data() {
let (_root, dir) = set_up();
@@ -350,7 +351,7 @@ fn test_get_raw_data() {
assert_eq!(fixture(&dir), InstalledVersions::get_raw_data());
}
-#[ignore]
+#[serial]
#[test]
fn test_get_reference() {
let (_root, _dir) = set_up();
@@ -374,7 +375,7 @@ fn test_get_reference() {
}
}
-#[ignore]
+#[serial]
#[test]
fn test_get_installed_packages_by_type() {
let (_root, _dir) = set_up();
@@ -393,7 +394,7 @@ fn test_get_installed_packages_by_type() {
);
}
-#[ignore]
+#[serial]
#[test]
fn test_get_install_path() {
let (_root, dir) = set_up();
@@ -416,7 +417,7 @@ fn test_get_install_path() {
);
}
-#[ignore]
+#[serial]
#[test]
fn test_with_class_loader_loaded() {
let (_root, _dir) = set_up();