mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
More work on reftest
This commit is contained in:
parent
93e67d0c77
commit
b226d43a4c
2 changed files with 18 additions and 6 deletions
|
@ -14,7 +14,7 @@ print output
|
||||||
|
|
||||||
driver = webdriver.Firefox()
|
driver = webdriver.Firefox()
|
||||||
|
|
||||||
driver.set_window_size(800, 700)
|
driver.set_window_size(800, 1000)
|
||||||
driver.get(input)
|
driver.get(input)
|
||||||
|
|
||||||
screenshot = driver.get_screenshot_as_file(output)
|
screenshot = driver.get_screenshot_as_file(output)
|
||||||
|
|
|
@ -67,18 +67,20 @@ fn run_test(config: Config, file: ~str) {
|
||||||
let servo_render = render_servo(config, file);
|
let servo_render = render_servo(config, file);
|
||||||
let ref_render = render_ref(config, file);
|
let ref_render = render_ref(config, file);
|
||||||
if servo_render != ref_render {
|
if servo_render != ref_render {
|
||||||
fail;
|
fail ~"rendered pages to not match";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type Render = ~[u8];
|
type Render = ~[u8];
|
||||||
|
|
||||||
|
const WIDTH: uint = 800;
|
||||||
|
const HEIGHT: uint = 600;
|
||||||
|
|
||||||
fn render_servo(config: Config, file: ~str) -> Render {
|
fn render_servo(config: Config, file: ~str) -> Render {
|
||||||
let infile = file;
|
let infile = file;
|
||||||
let outfile = connect(config.work_dir, basename(file) + ".png");
|
let outfile = connect(config.work_dir, basename(file) + ".png");
|
||||||
run_pipeline_png(infile, outfile);
|
run_pipeline_png(infile, outfile);
|
||||||
let buf = io::read_whole_file(outfile).get();
|
return sanitize_image(outfile);
|
||||||
return servo::image::base::load_from_memory(buf).get().data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_ref(config: Config, file: ~str) -> Render {
|
fn render_ref(config: Config, file: ~str) -> Render {
|
||||||
|
@ -87,8 +89,18 @@ fn render_ref(config: Config, file: ~str) -> Render {
|
||||||
let rasterize_path = rasterize_path(config);
|
let rasterize_path = rasterize_path(config);
|
||||||
let prog = run::start_program("python", ~[rasterize_path, infile, outfile]);
|
let prog = run::start_program("python", ~[rasterize_path, infile, outfile]);
|
||||||
prog.finish();
|
prog.finish();
|
||||||
let buf = io::read_whole_file(outfile).get();
|
return sanitize_image(outfile);
|
||||||
return servo::image::base::load_from_memory(buf).get().data;
|
}
|
||||||
|
|
||||||
|
fn sanitize_image(file: ~str) -> Render {
|
||||||
|
let buf = io::read_whole_file(file).get();
|
||||||
|
let image = servo::image::base::load_from_memory(buf).get();
|
||||||
|
|
||||||
|
// I don't know how to precisely control the rendered height of
|
||||||
|
// the Firefox output, so it is larger than we want. Trim it down.
|
||||||
|
assert image.width == WIDTH;
|
||||||
|
assert image.height >= HEIGHT;
|
||||||
|
vec::slice(image.data, 0, image.width * HEIGHT * 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn install_rasterize_py(config: Config) {
|
fn install_rasterize_py(config: Config) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue