feat(hive): migrate agent to native Go

This commit is contained in:
t8y2 committed 2026-08-11 23:13:04 +08:00
1 parent dd42bc9ac8
commit c68cb88bf9
91 files changed
+18227 -22

No files matched your search

+16
View File
@@ -275,6 +275,22 @@ mod tests {
assert_eq!(launch.working_dir.as_deref(), Some(manager.driver_dir("dameng").as_path()));
}
#[test]
fn hive_native_launch_ignores_stale_legacy_jar_without_jre() {
let manager = test_manager("hive-native-over-legacy-jar");
let native = manager.driver_native_path("hive");
touch(&native);
touch(&manager.driver_jar_path("hive"));
let launch = manager
.resolve_agent_launch_spec(&AgentState::default(), "hive", DEFAULT_JRE_KEY)
.expect("Hive native launch should not require a JRE");
assert_eq!(launch.program, native);
assert_eq!(launch.args, Vec::<String>::new());
assert_eq!(launch.working_dir.as_deref(), Some(manager.driver_dir("hive").as_path()));
}
#[test]
fn resolves_relative_native_agent_launch_with_absolute_paths() {
let base_dir =
+6 -4
View File
@@ -2930,14 +2930,16 @@ mod agent_registry_install_tests {
}
#[tokio::test]
async fn registry_install_accepts_native_driver_with_legacy_jar_fallback() {
let manager = test_manager("native-with-jar-fallback");
let db_type = "oracle";
async fn registry_install_replaces_hive_legacy_jar_with_native_driver() {
let manager = test_manager("hive-native-replaces-legacy-jar");
let db_type = "hive";
let version = "0.1.31";
let native_url = "https://example.com/dbx-agent-oracle";
let native_url = "https://example.com/dbx-agent-hive";
let native_bytes = b"native-agent";
let registry = registry_with_native_and_legacy_jar(db_type, version, native_url, native_bytes.len() as u64);
let native_path = manager.driver_native_path(db_type);
std::fs::create_dir_all(manager.driver_dir(db_type)).unwrap();
write_test_agent_jar(&manager.driver_jar_path(db_type));
let cache_path =
write_cached_driver_download(&manager, db_type, version, native_url, &native_path, native_bytes);
let events = std::sync::Mutex::new(Vec::new());