Skip to content

Commit 14bcdbc

Browse files
committed
test(persistence): simplify CAS conflict assertion
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
1 parent 6fd0485 commit 14bcdbc

1 file changed

Lines changed: 3 additions & 13 deletions

File tree

  • crates/openshell-server/src/persistence

‎crates/openshell-server/src/persistence/tests.rs‎

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,7 +1341,6 @@ async fn cas_update_message_cas_succeeds() {
13411341
async fn cas_update_message_cas_conflicts_on_concurrent_updates() {
13421342
use openshell_core::proto::Sandbox;
13431343
use std::sync::Arc;
1344-
use std::sync::atomic::{AtomicU32, Ordering};
13451344

13461345
let store = Arc::new(
13471346
Store::connect("sqlite::memory:?cache=shared")
@@ -1366,26 +1365,18 @@ async fn cas_update_message_cas_conflicts_on_concurrent_updates() {
13661365

13671366
store.put_message(&sandbox).await.unwrap();
13681367

1369-
// Track how many updates succeed
1370-
let success_count = Arc::new(AtomicU32::new(0));
1371-
13721368
// Spawn 5 concurrent CAS updates using the same observed version. Passing an
13731369
// explicit version makes this deterministic: later tasks cannot re-read the
13741370
// latest committed version and legitimately succeed.
13751371
let mut handles = vec![];
13761372
for i in 0..5 {
13771373
let store = Arc::clone(&store);
1378-
let success_count = Arc::clone(&success_count);
13791374
let handle = tokio::spawn(async move {
1380-
let result = store
1375+
store
13811376
.update_message_cas::<Sandbox, _>("test-id", 1, |s| {
13821377
s.current_policy_version = i;
13831378
})
1384-
.await;
1385-
if result.is_ok() {
1386-
success_count.fetch_add(1, Ordering::SeqCst);
1387-
}
1388-
result
1379+
.await
13891380
});
13901381
handles.push(handle);
13911382
}
@@ -1396,15 +1387,14 @@ async fn cas_update_message_cas_conflicts_on_concurrent_updates() {
13961387
.map(|r| r.unwrap())
13971388
.collect();
13981389

1399-
// Only one should succeed; others fail with Conflict due to single-attempt CAS
1390+
// Only one should succeed; others fail with Conflict due to single-attempt CAS.
14001391
let successes = results.iter().filter(|r| r.is_ok()).count();
14011392
let conflicts = results
14021393
.iter()
14031394
.filter(|r| matches!(r, Err(PersistenceError::Conflict { .. })))
14041395
.count();
14051396
assert_eq!(successes, 1, "exactly one concurrent update should succeed");
14061397
assert_eq!(conflicts, 4, "four updates should fail with Conflict");
1407-
assert_eq!(success_count.load(Ordering::SeqCst), 1);
14081398

14091399
// Final version should be 2 (initial 1 + 1 successful update)
14101400
let final_sandbox = store

0 commit comments

Comments
 (0)