- #100: plugin_review_package prend ReviewPluginPackageDto valide (source_kind) - #101: opencode_model_server_block débloque modèle quand pas utilisé - Tests verts: plugin.test.ts + model_server.rs
This commit is contained in:
@ -803,7 +803,7 @@ async fn concurrent_ensure_same_server_shares_one_start_attempt() {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn local_model_server_use_rejects_distinct_project_until_guard_is_released() {
|
||||
async fn local_model_server_use_allows_distinct_projects_concurrently() {
|
||||
let usecase = ensure(
|
||||
Arc::new(FakeRegistry::default()),
|
||||
Arc::new(FakeProbe::new(Vec::new())),
|
||||
@ -812,18 +812,17 @@ async fn local_model_server_use_rejects_distinct_project_until_guard_is_released
|
||||
Arc::new(FakeEvents::default()),
|
||||
);
|
||||
|
||||
let guard = usecase.acquire_project_use(sid(30), pid(1)).unwrap();
|
||||
let err = usecase.acquire_project_use(sid(30), pid(2)).unwrap_err();
|
||||
let first_project = usecase.acquire_use(sid(30)).unwrap();
|
||||
let second_project = usecase.acquire_use(sid(30)).unwrap();
|
||||
|
||||
assert_eq!(err.code(), "MODEL_SERVER");
|
||||
assert!(err.to_string().contains("model_server_in_use"));
|
||||
|
||||
drop(guard);
|
||||
assert!(usecase.acquire_project_use(sid(30), pid(2)).is_ok());
|
||||
drop(first_project);
|
||||
assert!(usecase.acquire_use(sid(30)).is_ok());
|
||||
drop(second_project);
|
||||
assert!(usecase.acquire_use(sid(30)).is_ok());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn local_model_server_use_allows_same_project_with_refcount() {
|
||||
async fn local_model_server_use_refcounts_concurrent_sessions() {
|
||||
let usecase = ensure(
|
||||
Arc::new(FakeRegistry::default()),
|
||||
Arc::new(FakeProbe::new(Vec::new())),
|
||||
@ -832,14 +831,13 @@ async fn local_model_server_use_allows_same_project_with_refcount() {
|
||||
Arc::new(FakeEvents::default()),
|
||||
);
|
||||
|
||||
let first = usecase.acquire_project_use(sid(31), pid(1)).unwrap();
|
||||
let second = usecase.acquire_project_use(sid(31), pid(1)).unwrap();
|
||||
let first = usecase.acquire_use(sid(31)).unwrap();
|
||||
let second = usecase.acquire_use(sid(31)).unwrap();
|
||||
|
||||
assert!(usecase.acquire_project_use(sid(31), pid(2)).is_err());
|
||||
drop(first);
|
||||
assert!(usecase.acquire_project_use(sid(31), pid(2)).is_err());
|
||||
assert!(usecase.acquire_use(sid(31)).is_ok());
|
||||
drop(second);
|
||||
assert!(usecase.acquire_project_use(sid(31), pid(2)).is_ok());
|
||||
assert!(usecase.acquire_use(sid(31)).is_ok());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
@ -854,7 +852,7 @@ async fn terminal_session_removal_releases_local_model_server_use_guard() {
|
||||
let project = pid(1);
|
||||
let server_id = sid(32);
|
||||
let session_id = SessionId::from_uuid(uuid::Uuid::from_u128(33));
|
||||
let guard = usecase.acquire_project_use(server_id, project).unwrap();
|
||||
let guard = usecase.acquire_use(server_id).unwrap();
|
||||
let sessions = TerminalSessions::new();
|
||||
let mut session = TerminalSession::starting(
|
||||
session_id,
|
||||
@ -873,10 +871,10 @@ async fn terminal_session_removal_releases_local_model_server_use_guard() {
|
||||
session,
|
||||
Some(guard),
|
||||
);
|
||||
assert!(usecase.acquire_project_use(server_id, pid(2)).is_err());
|
||||
assert!(usecase.acquire_use(server_id).is_ok());
|
||||
|
||||
sessions.remove(&session_id);
|
||||
assert!(usecase.acquire_project_use(server_id, pid(2)).is_ok());
|
||||
assert!(usecase.acquire_use(server_id).is_ok());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
||||
Reference in New Issue
Block a user