@@ -20,6 +20,7 @@ use std::process::Command;
2020use rstest:: rstest;
2121
2222use async_trait:: async_trait;
23+ use insta:: internals:: SettingsBindDropGuard ;
2324use insta:: { Settings , glob} ;
2425use insta_cmd:: { assert_cmd_snapshot, get_cargo_bin} ;
2526use std:: path:: PathBuf ;
@@ -215,6 +216,42 @@ fn test_cli_top_memory_consumers<'a>(
215216 #[ case] snapshot_name : & str ,
216217 #[ case] top_memory_consumers : impl IntoIterator < Item = & ' a str > ,
217218) {
219+ let _bound = bind_to_settings ( snapshot_name) ;
220+
221+ let mut cmd = cli ( ) ;
222+ let sql = "select * from generate_series(1,500000) as t1(v1) order by v1;" ;
223+ cmd. args ( [ "--memory-limit" , "10M" , "--command" , sql] ) ;
224+ cmd. args ( top_memory_consumers) ;
225+
226+ assert_cmd_snapshot ! ( cmd) ;
227+ }
228+
229+ #[ rstest]
230+ #[ case( "no_track" , [ "--top-memory-consumers" , "0" ] ) ]
231+ #[ case( "top2" , [ "--top-memory-consumers" , "2" ] ) ]
232+ #[ test]
233+ fn test_cli_top_memory_consumers_with_mem_pool_type < ' a > (
234+ #[ case] snapshot_name : & str ,
235+ #[ case] top_memory_consumers : impl IntoIterator < Item = & ' a str > ,
236+ ) {
237+ let _bound = bind_to_settings ( snapshot_name) ;
238+
239+ let mut cmd = cli ( ) ;
240+ let sql = "select * from generate_series(1,500000) as t1(v1) order by v1;" ;
241+ cmd. args ( [
242+ "--memory-limit" ,
243+ "10M" ,
244+ "--mem-pool-type" ,
245+ "fair" ,
246+ "--command" ,
247+ sql,
248+ ] ) ;
249+ cmd. args ( top_memory_consumers) ;
250+
251+ assert_cmd_snapshot ! ( cmd) ;
252+ }
253+
254+ fn bind_to_settings ( snapshot_name : & str ) -> SettingsBindDropGuard {
218255 let mut settings = make_settings ( ) ;
219256
220257 settings. set_snapshot_suffix ( snapshot_name) ;
@@ -232,12 +269,20 @@ fn test_cli_top_memory_consumers<'a>(
232269 "Resources exhausted: Failed to allocate" ,
233270 ) ;
234271
272+ settings. bind_to_scope ( )
273+ }
274+
275+ #[ test]
276+ fn test_cli_with_unbounded_memory_pool ( ) {
277+ let mut settings = make_settings ( ) ;
278+
279+ settings. set_snapshot_suffix ( "default" ) ;
280+
235281 let _bound = settings. bind_to_scope ( ) ;
236282
237283 let mut cmd = cli ( ) ;
238284 let sql = "select * from generate_series(1,500000) as t1(v1) order by v1;" ;
239- cmd. args ( [ "--memory-limit" , "10M" , "--command" , sql] ) ;
240- cmd. args ( top_memory_consumers) ;
285+ cmd. args ( [ "--maxrows" , "10" , "--command" , sql] ) ;
241286
242287 assert_cmd_snapshot ! ( cmd) ;
243288}
0 commit comments