load_harness_test.gleam
1 import gleeunit/should 2 import lightspeed/ops/load_harness 3 4 pub fn harness_is_deterministic_for_same_scenario_test() { 5 let scenario = 6 load_harness.Scenario( 7 session_count: 4, 8 increments_per_session: 6, 9 include_reconnect: True, 10 include_crash_restart: True, 11 ack_every: 3, 12 ) 13 14 let first = load_harness.run(scenario) 15 let second = load_harness.run(scenario) 16 17 first 18 |> should.equal(second) 19 } 20 21 pub fn harness_reports_crash_reconnect_and_pending_for_slow_ack_test() { 22 let scenario = 23 load_harness.Scenario( 24 session_count: 2, 25 increments_per_session: 4, 26 include_reconnect: True, 27 include_crash_restart: True, 28 ack_every: 10, 29 ) 30 31 let summary = load_harness.run(scenario) 32 33 summary.total_sessions 34 |> should.equal(2) 35 36 summary.total_increments 37 |> should.equal(8) 38 39 summary.total_crashes 40 |> should.equal(2) 41 42 summary.total_reconnects 43 |> should.equal(2) 44 45 should.equal(summary.total_patch_queued > summary.total_patch_acked, True) 46 } 47 48 pub fn harness_without_crash_or_reconnect_stays_clean_test() { 49 let scenario = 50 load_harness.Scenario( 51 session_count: 3, 52 increments_per_session: 2, 53 include_reconnect: False, 54 include_crash_restart: False, 55 ack_every: 1, 56 ) 57 58 let summary = load_harness.run(scenario) 59 60 summary.total_crashes 61 |> should.equal(0) 62 63 summary.total_reconnects 64 |> should.equal(0) 65 66 summary.total_patch_queued 67 |> should.equal(summary.total_patch_acked) 68 }