@@ -849,6 +849,45 @@ fn canister_snapshot_metrics_are_observed() {
849
849
assert_eq ! ( gauge, 1.0 ) ;
850
850
}
851
851
852
+ #[ test]
853
+ fn canister_snapshot_metrics_are_consistent_after_canister_deletion ( ) {
854
+ let env = StateMachineBuilder :: new ( )
855
+ . with_subnet_type ( SubnetType :: Application )
856
+ . build ( ) ;
857
+
858
+ let canister_id = create_universal_canister_with_cycles (
859
+ & env,
860
+ Some ( CanisterSettingsArgsBuilder :: new ( ) . build ( ) ) ,
861
+ INITIAL_CYCLES_BALANCE ,
862
+ ) ;
863
+
864
+ env. take_canister_snapshot ( TakeCanisterSnapshotArgs :: new ( canister_id, None ) )
865
+ . unwrap ( ) ;
866
+
867
+ let count = fetch_gauge ( env. metrics_registry ( ) , "scheduler_num_canister_snapshots" ) . unwrap ( ) ;
868
+ assert_eq ! ( count, 1.0 ) ;
869
+ let memory_usage = fetch_gauge (
870
+ env. metrics_registry ( ) ,
871
+ "scheduler_canister_snapshots_memory_usage_bytes" ,
872
+ )
873
+ . unwrap ( ) ;
874
+ assert_gt ! ( memory_usage, 0.0 ) ;
875
+
876
+ env. stop_canister ( canister_id)
877
+ . expect ( "Error stopping canister." ) ;
878
+ env. delete_canister ( canister_id)
879
+ . expect ( "Error deleting canister." ) ;
880
+
881
+ let count = fetch_gauge ( env. metrics_registry ( ) , "scheduler_num_canister_snapshots" ) . unwrap ( ) ;
882
+ assert_eq ! ( count, 0.0 ) ;
883
+ let memory_usage = fetch_gauge (
884
+ env. metrics_registry ( ) ,
885
+ "scheduler_canister_snapshots_memory_usage_bytes" ,
886
+ )
887
+ . unwrap ( ) ;
888
+ assert_eq ! ( memory_usage, 0.0 ) ;
889
+ }
890
+
852
891
fn assert_replied ( result : Result < WasmResult , UserError > ) {
853
892
match result {
854
893
Ok ( wasm_result) => match wasm_result {
0 commit comments