diff --git a/tests/reftest.rs b/tests/reftest.rs index 3908217c5560..f4fe8e51037a 100644 --- a/tests/reftest.rs +++ b/tests/reftest.rs @@ -136,6 +136,7 @@ struct Reftest { is_flaky: bool, experimental: bool, fragment_identifier: Option, + resolution: Option, } struct TestLine<'a> { @@ -195,6 +196,7 @@ fn parse_lists(file: &Path, servo_args: &[String], render_mode: RenderMode, id_o let mut flakiness = RenderMode::empty(); let mut experimental = false; let mut fragment_identifier = None; + let mut resolution = None; for condition in conditions_list { match condition { "flaky_cpu" => flakiness.insert(CPU_RENDERING), @@ -207,6 +209,9 @@ fn parse_lists(file: &Path, servo_args: &[String], render_mode: RenderMode, id_o if condition.starts_with("fragment=") { fragment_identifier = Some(condition.slice_from("fragment=".len()).to_string()); } + if condition.starts_with("resolution=") { + resolution = Some(condition.slice_from("resolution=".len()).to_string()); + } } let reftest = Reftest { @@ -219,6 +224,7 @@ fn parse_lists(file: &Path, servo_args: &[String], render_mode: RenderMode, id_o is_flaky: render_mode.intersects(flakiness), experimental: experimental, fragment_identifier: fragment_identifier, + resolution: resolution, }; tests.push(make_test(reftest)); @@ -265,6 +271,10 @@ fn capture(reftest: &Reftest, side: usize) -> (u32, u32, Vec) { if reftest.experimental { command.arg("--experimental"); } + if let Some(ref resolution) = reftest.resolution { + command.arg("--resolution"); + command.arg(resolution); + } let retval = match command.status() { Ok(status) => status, Err(e) => panic!("failed to execute process: {}", e),