aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/platform/hhvm_detector_test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/tests/platform/hhvm_detector_test.rs')
-rw-r--r--crates/shirabe/tests/platform/hhvm_detector_test.rs27
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,
+ ))
+}