@@ -6,7 +6,7 @@ use crate::github::{
66use crate :: job_queue:: should_use_job_queue;
77use crate :: load:: SiteCtxt ;
88
9- use database:: { parse_backends, BenchmarkRequest , CodegenBackend } ;
9+ use database:: { parse_backends, parse_profiles , BenchmarkRequest , CodegenBackend , Profile } ;
1010use hashbrown:: HashMap ;
1111use std:: sync:: Arc ;
1212
@@ -258,6 +258,7 @@ fn parse_benchmark_parameters<'a>(
258258 exclude : args. remove ( "exclude" ) . filter ( |s| !s. is_empty ( ) ) ,
259259 runs : None ,
260260 backends : args. remove ( "backends" ) . filter ( |s| !s. is_empty ( ) ) ,
261+ profiles : args. remove ( "profiles" ) . filter ( |s| !s. is_empty ( ) ) ,
261262 } ;
262263 if let Some ( runs) = args. remove ( "runs" ) . filter ( |s| !s. is_empty ( ) ) {
263264 let Ok ( runs) = runs. parse :: < u32 > ( ) else {
@@ -278,6 +279,19 @@ fn parse_benchmark_parameters<'a>(
278279 )
279280 } ) ?;
280281 }
282+ if let Some ( profiles) = & params. profiles {
283+ // Make sure that the profiles are correct
284+ parse_profiles ( profiles) . map_err ( |e| {
285+ format ! (
286+ "Cannot parse profiles: {e}. Valid values are: {}" ,
287+ Profile :: all_values( )
288+ . iter( )
289+ . map( |b| b. as_str( ) )
290+ . collect:: <Vec <_>>( )
291+ . join( ", " )
292+ )
293+ } ) ?;
294+ }
281295
282296 if !args. is_empty ( ) {
283297 Err ( format ! (
@@ -327,6 +341,7 @@ struct BenchmarkParameters<'a> {
327341 exclude : Option < & ' a str > ,
328342 runs : Option < i32 > ,
329343 backends : Option < & ' a str > ,
344+ profiles : Option < & ' a str > ,
330345}
331346
332347pub async fn get_authorized_users ( ) -> Result < Vec < u64 > , String > {
0 commit comments