[router] Add Rust Binary Entrypoint for SGLang Router (#9089)

This commit is contained in:
Simo Lin
2025-08-11 21:37:36 -07:00
committed by GitHub
parent a218490136
commit 9d68bdb240
12 changed files with 638 additions and 78 deletions

View File

@@ -576,7 +576,7 @@ mod tests {
}
// Helper to create a Router instance for testing event handlers
fn create_test_router() -> Arc<dyn RouterTrait> {
async fn create_test_router() -> Arc<dyn RouterTrait> {
use crate::config::PolicyConfig;
use crate::policies::PolicyFactory;
use crate::routers::router::Router;
@@ -593,6 +593,7 @@ mod tests {
crate::config::types::RetryConfig::default(),
crate::config::types::CircuitBreakerConfig::default(),
)
.await
.unwrap();
Arc::new(router) as Arc<dyn RouterTrait>
}
@@ -896,7 +897,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pod_event_add_unhealthy_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "pod1".into(),
@@ -925,7 +926,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pod_deletion_non_existing_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "pod1".into(),
@@ -952,7 +953,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pd_pod_event_prefill_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "prefill-pod".into(),
@@ -981,7 +982,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pd_pod_event_decode_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "decode-pod".into(),
@@ -1008,7 +1009,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pd_pod_deletion_tracked_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "test-pod".into(),
@@ -1042,7 +1043,7 @@ mod tests {
#[tokio::test]
async fn test_handle_pd_pod_deletion_untracked_pod() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "untracked-pod".into(),
@@ -1071,7 +1072,7 @@ mod tests {
#[tokio::test]
async fn test_unified_handler_regular_mode() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "regular-pod".into(),
@@ -1099,7 +1100,7 @@ mod tests {
#[tokio::test]
async fn test_unified_handler_pd_mode_with_prefill() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "prefill-pod".into(),
@@ -1127,7 +1128,7 @@ mod tests {
#[tokio::test]
async fn test_unified_handler_deletion_with_pd_mode() {
let router = create_test_router();
let router = create_test_router().await;
let tracked_pods = Arc::new(Mutex::new(HashSet::new()));
let pod_info = PodInfo {
name: "decode-pod".into(),