Fix reftest

This commit is contained in:
Brian Anderson 2012-09-14 18:37:30 -07:00
parent daf61fd483
commit b7c241a091

View file

@ -1,11 +1,11 @@
use std; extern mod std;
use servo; extern mod servo;
import std::test::{TestOpts, run_tests_console, TestDesc}; use std::test::{TestOpts, run_tests_console, TestDesc};
import std::getopts::{getopts, reqopt, opt_str, fail_str}; use std::getopts::{getopts, reqopt, opt_str, fail_str};
import os::list_dir_path; use os::list_dir_path;
import servo::run_pipeline_png; use servo::run_pipeline_png;
import servo::image::base::Image; use servo::image::base::Image;
fn main(args: ~[~str]) { fn main(args: ~[~str]) {
let config = parse_config(args); let config = parse_config(args);
@ -16,9 +16,9 @@ fn main(args: ~[~str]) {
} }
struct Config { struct Config {
source_dir: ~str; source_dir: ~str,
work_dir: ~str; work_dir: ~str,
filter: Option<~str>; filter: Option<~str>
} }
fn parse_config(args: ~[~str]) -> Config { fn parse_config(args: ~[~str]) -> Config {
@ -59,14 +59,14 @@ fn make_test(config: Config, file: ~str) -> TestDesc {
{ {
name: file, name: file,
fn: fn~() { run_test(config, file) }, testfn: fn~() { run_test(config, file) },
ignore: directives.ignore, ignore: directives.ignore,
should_fail: false should_fail: false
} }
} }
struct Directives { struct Directives {
ignore: bool; ignore: bool
} }
fn load_test_directives(file: ~str) -> Directives { fn load_test_directives(file: ~str) -> Directives {
@ -120,7 +120,13 @@ fn run_test(config: Config, file: ~str) {
); );
#debug("i: %?, x: %?, y: %?, ref: %?, servo: %?", i, w, h, ref_pixel, servo_pixel); #debug("i: %?, x: %?, y: %?, ref: %?, servo: %?", i, w, h, ref_pixel, servo_pixel);
if servo_pixel != ref_pixel { let (sr, sg, sb, sa) = servo_pixel;
let (rr, rg, rb, ra) = ref_pixel;
if sr != rr
|| sg != rg
|| sb != rb
|| sa != ra {
fail #fmt("mismatched pixel. x: %?, y: %?, ref: %?, servo: %?", w, h, ref_pixel, servo_pixel) fail #fmt("mismatched pixel. x: %?, y: %?, ref: %?, servo: %?", w, h, ref_pixel, servo_pixel)
} }
} }
@ -166,7 +172,7 @@ fn sanitize_image(file: ~str) -> Image {
} }
fn install_rasterize_py(config: Config) { fn install_rasterize_py(config: Config) {
import io::WriterUtil; use io::WriterUtil;
let path = rasterize_path(config); let path = rasterize_path(config);
let writer = io::file_writer(&Path(path), ~[io::Create, io::Truncate]).get(); let writer = io::file_writer(&Path(path), ~[io::Create, io::Truncate]).get();
writer.write_str(rasterize_py()); writer.write_str(rasterize_py());