diff options
Diffstat (limited to 'crates/shirabe/tests/platform/hhvm_detector_test.rs')
| -rw-r--r-- | crates/shirabe/tests/platform/hhvm_detector_test.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/crates/shirabe/tests/platform/hhvm_detector_test.rs b/crates/shirabe/tests/platform/hhvm_detector_test.rs index 12a966a..f0a8550 100644 --- a/crates/shirabe/tests/platform/hhvm_detector_test.rs +++ b/crates/shirabe/tests/platform/hhvm_detector_test.rs @@ -4,7 +4,7 @@ use shirabe::platform::hhvm_detector::HhvmDetector; use shirabe::util::Platform; use shirabe::util::ProcessExecutor; use shirabe_external_packages::symfony::process::ExecutableFinder; -use shirabe_php_shim::{PhpMixed, defined}; +use shirabe_php_shim::{PhpMixed, constant, defined}; use shirabe_semver::version_parser::VersionParser; fn set_up() -> HhvmDetector { @@ -13,11 +13,16 @@ fn set_up() -> HhvmDetector { hhvm_detector } +#[ignore] #[test] -#[ignore = "requires HHVM_VERSION_ID constant, which the shim does not define"] fn test_hhvm_version_when_executing_in_hhvm() { - let _hhvm_detector = set_up(); - todo!() + let mut hhvm_detector = set_up(); + if !defined("HHVM_VERSION_ID") { + // markTestSkipped('Not running with HHVM') + return; + } + let version = hhvm_detector.get_version(); + assert_eq!(version_id_to_version(), version); } #[ignore] @@ -66,3 +71,17 @@ fn test_hhvm_version_when_executing_in_php() { VersionParser.normalize(&detected_version, None).unwrap() ); } + +fn version_id_to_version() -> Option<String> { + if !defined("HHVM_VERSION_ID") { + return None; + } + + let hhvm_version_id = constant("HHVM_VERSION_ID").as_int().unwrap(); + Some(format!( + "{}.{}.{}", + hhvm_version_id / 10000, + (hhvm_version_id / 100) % 100, + hhvm_version_id % 100, + )) +} |
