aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGilles Leblanc <gilles.leblanc@gmail.com>2015-03-02 19:58:13 -0500
committerSimon Sapin <simon.sapin@exyr.org>2015-03-07 17:51:17 +0100
commit54dfb659ec3f599193769fd542e70671435e491d (patch)
tree68ae28355b87d3142b8e97abfdadc236e61daa82
parent1a73766db2442476190f3dcec321f452aa122055 (diff)
downloadservo-54dfb659ec3f599193769fd542e70671435e491d.tar.gz
servo-54dfb659ec3f599193769fd542e70671435e491d.zip
Organize reftest list alphabetically and make the tidy script check it
Reftest list check is checked using Python's default string comparison. Also added a notice in the tidy script when there are no errors. Fixes #5092
-rw-r--r--python/tidy.py37
-rw-r--r--tests/ref/basic.list439
2 files changed, 253 insertions, 223 deletions
diff --git a/python/tidy.py b/python/tidy.py
index fda394f1eed..c6bb4931e2d 100644
--- a/python/tidy.py
+++ b/python/tidy.py
@@ -11,10 +11,13 @@
import os
import fnmatch
+import itertools
from licenseck import licenses
directories_to_check = ["ports/gonk", "components"]
filetypes_to_check = [".rs", ".rc", ".cpp", ".c", ".h", ".py"]
+reftest_directories = ["tests/ref"]
+reftest_filetype = ".list"
ignored_files = [
# Upstream
@@ -51,6 +54,10 @@ def should_check(file_name):
return True
+def should_check_reftest(file_name):
+ return file_name.endswith(reftest_filetype)
+
+
def check_license(contents):
valid_license = any(contents.startswith(license) for license in licenses)
acknowledged_bad_license = "xfail-license" in contents[:100]
@@ -93,17 +100,45 @@ def collect_errors_for_files(files_to_check, checking_functions):
yield (file_name, error[0], error[1])
+def check_reftest_order(files_to_check):
+ for file_name in files_to_check:
+ with open(file_name, "r") as fp:
+ split_lines = fp.read().splitlines()
+ lines = filter(lambda l: len(l) > 0 and l[0] != '#', split_lines)
+ for idx, line in enumerate(lines[:-1]):
+ next_line = lines[idx+1]
+ current = get_reftest_names(line)
+ next = get_reftest_names(next_line)
+ if current is not None and next is not None and current > next:
+ yield (file_name, split_lines.index(next_line) + 1, "line not in alphabetical order")
+
+
+def get_reftest_names(line):
+ tokens = line.split()
+ if (len(tokens) == 3):
+ return tokens[1] + tokens[2]
+ if (len(tokens) == 4):
+ return tokens[2] + tokens[3]
+ return None
+
+
def scan():
all_files = collect_file_names(directories_to_check)
files_to_check = filter(should_check, all_files)
checking_functions = [check_license, check_length, check_whitespace]
errors = collect_errors_for_files(files_to_check, checking_functions)
- errors = list(errors)
+
+ reftest_files = collect_file_names(reftest_directories)
+ reftest_to_check = filter(should_check_reftest, reftest_files)
+ r_errors = check_reftest_order(reftest_to_check)
+
+ errors = list(itertools.chain(errors, r_errors))
if errors:
for error in errors:
print("{}:{}: {}".format(*error))
return 1
else:
+ print("tidy reported no errors.")
return 0
diff --git a/tests/ref/basic.list b/tests/ref/basic.list
index 13e258eb3db..c4ff7b1f395 100644
--- a/tests/ref/basic.list
+++ b/tests/ref/basic.list
@@ -1,271 +1,266 @@
-== case-insensitive-font-family.html case-insensitive-font-family-ref.html
-!= img_simple.html img_simple_ref.html
-== basic_width_px.html basic_width_em.html
-== br.html br-ref.html
-# `?` and `#` in the name is a test for https://github.com/servo/servo/issues/3340
-== hello_a?foo#bar.html hello_b.html
-== margin_a.html margin_b.html
-== root_pseudo_a.html root_pseudo_b.html
-== first_child_pseudo_a.html first_child_pseudo_b.html
-== last_child_pseudo_a.html last_child_pseudo_b.html
-== only_child_pseudo_a.html only_child_pseudo_b.html
-== nth_child_pseudo_a.html nth_child_pseudo_b.html
-== nth_last_child_pseudo_a.html nth_last_child_pseudo_b.html
-== nth_of_type_pseudo_a.html nth_of_type_pseudo_b.html
-== nth_last_of_type_pseudo_a.html nth_last_of_type_pseudo_b.html
-== first_of_type_pseudo_a.html first_of_type_pseudo_b.html
-== last_of_type_pseudo_a.html last_of_type_pseudo_b.html
-== only_of_type_pseudo_a.html only_of_type_pseudo_b.html
-== visibility_hidden.html visibility_hidden_ref.html
-== root_height_a.html root_height_b.html
-== png_rgba_colorspace_a.html png_rgba_colorspace_b.html
-== border_style_none_a.html border_style_none_b.html
-== borders_a.html borders_b.html
+# Should be != with expected failure:
+# FIXME: use the real test when pixel-snapping for scrolling is fixed.
+#fragment=top == ../html/acid2.html acid2_ref_broken.html
+
+# Should be == with expected failure:
+fragment=top != ../html/acid2.html acid2_ref.html
+
+== abs_float_pref_width_a.html abs_float_pref_width_ref.html
== acid1_a.html acid1_b.html
-== text_decoration_cached.html text_decoration_cached_ref.html
-# text_decoration_propagation_a.html text_decoration_propagation_b.html
-# inline_text_align_a.html inline_text_align_b.html
-== font_size.html font_size_ref.html
-== font_style.html font_style_ref.html
-== img_size_a.html img_size_b.html
-== img_dynamic_remove.html img_dynamic_remove_ref.html
-== upper_id_attr.html upper_id_attr_ref.html
-# inline_border_a.html inline_border_b.html
-== border_code_tag.html border_code_tag_ref.html
+== acid2_noscroll.html acid2_ref_broken.html
+== after_block_iteration.html after_block_iteration_ref.html
+== alpha_png_a.html alpha_png_b.html
== anon_block_inherit_a.html anon_block_inherit_b.html
+flaky_cpu == append_style_a.html append_style_b.html
== attr_exists_selector.html attr_exists_selector_ref.html
== attr_selector_case_sensitivity.html attr_selector_case_sensitivity_ref.html
-!= noteq_attr_exists_selector.html attr_exists_selector_ref.html
-== data_img_a.html data_img_b.html
-== background_style_attr.html background_ref.html
== background_external_stylesheet.html background_ref.html
-== block_image.html 500x300_green.html
-!= block_image.html noteq_500x300_white.html
-== object_element_a.html object_element_b.html
-flaky_cpu == append_style_a.html append_style_b.html
-== height_compute_reset.html height_compute.html
-== width_nonreplaced_block_simple_a.html width_nonreplaced_block_simple_b.html
-== max_width_float_simple_a.html max_width_float_simple_b.html
-== max_width_simple_a.html max_width_simple_b.html
-== min_width_float_simple_a.html min_width_float_simple_b.html
-== min_width_simple_a.html min_width_simple_b.html
-# Positioning tests
-== position_abs_cb_with_non_cb_kid_a.html position_abs_cb_with_non_cb_kid_b.html
-== position_abs_height_width_a.html position_abs_height_width_b.html
-== position_abs_left_a.html position_abs_left_b.html
-== position_abs_margin_top_percentage_a.html position_abs_margin_top_percentage_b.html
-== position_abs_nested_a.html position_abs_nested_b.html
-== position_abs_replaced_simple_a.html position_abs_replaced_simple_b.html
-== position_abs_static_y_a.html position_abs_static_y_b.html
-== position_abs_width_percentage_a.html position_abs_width_percentage_b.html
-== position_abs_pseudo_a.html position_abs_pseudo_b.html
-# commented out because multiple layers don't work with reftests --pcwalton
-# == position_fixed_a.html position_fixed_b.html
-# == position_fixed_simple_a.html position_fixed_simple_b.html
-# == position_fixed_static_y_a.html position_fixed_static_y_b.html
-== position_fixed_background_color_a.html position_fixed_background_color_b.html
-== position_fixed_overflow_a.html position_fixed_overflow_b.html
-== position_fixed_tile_edge.html position_fixed_tile_edge_ref.html
-== position_fixed_tile_edge_2.html position_fixed_tile_edge_ref.html
-== position_fixed_tile_edge_3.html position_fixed_tile_edge_ref.html
-== position_relative_a.html position_relative_b.html
-== position_relative_top_percentage_a.html position_relative_top_percentage_b.html
+== background_image_position_a.html background_image_position_ref.html
== background_none_a.html background_none_b.html
-== negative_margins_a.html negative_margins_b.html
-== negative_margin_uncle_a.html negative_margin_uncle_b.html
-== inline_padding_a.html inline_padding_b.html
-== min_max_height_a.html min_max_height_b.html
-== minimum_line_height_a.html minimum_line_height_b.html
== background_position_a.html background_position_b.html
== background_position_keyword.html background_position_b.html
== background_position_percent.html background_position_b.html
== background_position_shorthand.html background_position_shorthand_ref.html
+== background_repeat_both_a.html background_repeat_both_b.html
+== background_repeat_none_a.html background_repeat_none_b.html
== background_repeat_x_a.html background_repeat_x_b.html
== background_repeat_y_a.html background_repeat_y_b.html
-== background_repeat_none_a.html background_repeat_none_b.html
-== background_repeat_both_a.html background_repeat_both_b.html
-== setattribute_id_restyle_a.html setattribute_id_restyle_b.html
-== pseudo_element_a.html pseudo_element_b.html
-flaky_cpu == linebreak_simple_a.html linebreak_simple_b.html
-== linebreak_inline_span_a.html linebreak_inline_span_b.html
-
-# Should be == with expected failure. See #2797
-!= overconstrained_block.html overconstrained_block_ref.html
-
-== overflow_auto.html overflow_simple_b.html
-== overflow_scroll.html overflow_simple_b.html
-== overflow_simple_a.html overflow_simple_b.html
-== noscript.html noscript_ref.html
-== pseudo_inherit.html pseudo_inherit_ref.html
-flaky_cpu,experimental == vertical-lr-blocks.html vertical-lr-blocks_ref.html
-== float_intrinsic_height.html float_intrinsic_height_ref.html
-== table_auto_width.html table_auto_width_ref.html
-== inline_whitespace_b.html inline_whitespace_ref.html
-== inline_whitespace_a.html inline_whitespace_ref.html
-== whitespace_pre.html whitespace_pre_ref.html
-== line_height_a.html line_height_ref.html
+== background_size_a.html background_size_ref.html
+== background_size_shorthand_a.html background_size_shorthand_ref.html
+== background_style_attr.html background_ref.html
+== basic_width_px.html basic_width_em.html
+== block_formatting_context_a.html block_formatting_context_ref.html
+== block_formatting_context_complex_a.html block_formatting_context_complex_ref.html
+== block_formatting_context_containing_floats_a.html block_formatting_context_containing_floats_ref.html
+== block_formatting_context_relative_a.html block_formatting_context_ref.html
+== block_formatting_context_translation_a.html block_formatting_context_translation_ref.html
+== block_image.html 500x300_green.html
+!= block_image.html noteq_500x300_white.html
== block_replaced_content_a.html block_replaced_content_ref.html
== block_replaced_content_b.html block_replaced_content_ref.html
-== root_margin_collapse_a.html root_margin_collapse_b.html
-
-# Should be == with expected failure:
-fragment=top != ../html/acid2.html acid2_ref.html
-
-# Should be != with expected failure:
-# FIXME: use the real test when pixel-snapping for scrolling is fixed.
-#fragment=top == ../html/acid2.html acid2_ref_broken.html
-== acid2_noscroll.html acid2_ref_broken.html
-
-!= inline_background_a.html inline_background_ref.html
-== inline_element_border_a.html inline_element_border_ref.html
+!= border_black_groove.html border_black_solid.html
+!= border_black_ridge.html border_black_groove.html
+!= border_black_ridge.html border_black_solid.html
+== border_code_tag.html border_code_tag_ref.html
+== border_radius_clip_a.html border_radius_clip_ref.html
+== border_radius_overlapping_a.html border_radius_overlapping_ref.html
+== border_style_none_a.html border_style_none_b.html
+== borders_a.html borders_b.html
+!= box_shadow_blur_a.html box_shadow_blur_ref.html
+== box_shadow_border_box_a.html box_shadow_border_box_ref.html
+== box_shadow_default_color_a.html box_shadow_default_color_ref.html
+== box_shadow_inset_a.html box_shadow_inset_ref.html
+== box_shadow_inset_parsing_a.html box_shadow_inset_parsing_ref.html
+== box_shadow_paint_order_a.html box_shadow_paint_order_ref.html
+== box_shadow_spread_a.html box_shadow_spread_ref.html
+== box_sizing_border_box_a.html box_sizing_border_box_ref.html
+== box_sizing_sanity_check_a.html box_sizing_sanity_check_ref.html
+== br.html br-ref.html
+== canvas_lineto_a.html canvas_lineto_ref.html
+== canvas_transform_a.html canvas_transform_ref.html
+== case-insensitive-font-family.html case-insensitive-font-family-ref.html
+== clear_generated_content_table_a.html clear_generated_content_table_ref.html
+== clip_a.html clip_ref.html
+== data_img_a.html data_img_b.html
+== empty_cells_a.html empty_cells_ref.html
+== filter_opacity_a.html filter_opacity_ref.html
+== filter_sepia_a.html filter_sepia_ref.html
+== first_child_pseudo_a.html first_child_pseudo_b.html
+== first_of_type_pseudo_a.html first_of_type_pseudo_b.html
+== fixed_width_overrides_child_intrinsic_width_a.html fixed_width_overrides_child_intrinsic_width_ref.html
+== float_clearance_a.html float_clearance_ref.html
+== float_intrinsic_height.html float_intrinsic_height_ref.html
== float_intrinsic_width_a.html float_intrinsic_width_ref.html
== float_right_intrinsic_width_a.html float_right_intrinsic_width_ref.html
-== fixed_width_overrides_child_intrinsic_width_a.html fixed_width_overrides_child_intrinsic_width_ref.html
-== abs_float_pref_width_a.html abs_float_pref_width_ref.html
-== alpha_png_a.html alpha_png_b.html
-== background_image_position_a.html background_image_position_ref.html
-== multiple_css_class_a.html multiple_css_class_b.html
+== float_table_a.html float_table_ref.html
+== floated_generated_content_a.html floated_generated_content_b.html
+== floated_list_item_a.html floated_list_item_ref.html
+== floated_table_with_margin_a.html floated_table_with_margin_ref.html
+== font_size.html font_size_ref.html
+== font_style.html font_style_ref.html
+== height_compute_reset.html height_compute.html
+# `?` and `#` in the name is a test for https://github.com/servo/servo/issues/3340
+== hello_a?foo#bar.html hello_b.html
+== hide_after_create.html hide_after_create_ref.html
== iframe/bg_color.html iframe/bg_color_ref.html
+== iframe/hide_and_show.html iframe/hide_and_show_ref.html
+== iframe/multiple_external.html iframe/multiple_external_ref.html
+== iframe/overflow.html iframe/overflow_ref.html
+== iframe/positioning_margin.html iframe/positioning_margin_ref.html
== iframe/simple.html iframe/simple_ref.html
== iframe/simple_inline_default.html iframe/simple_inline_default_ref.html
+== iframe/simple_inline_height.html iframe/simple_inline_height_ref.html
+== iframe/simple_inline_max.html iframe/simple_inline_max_ref.html
+== iframe/simple_inline_min.html iframe/simple_inline_min_ref.html
== iframe/simple_inline_width.html iframe/simple_inline_width_ref.html
== iframe/simple_inline_width_height.html iframe/simple_inline_width_height_ref.html
-== iframe/simple_inline_height.html iframe/simple_inline_height_ref.html
== iframe/simple_inline_width_percentage.html iframe/simple_inline_width_percentage_ref.html
-== iframe/simple_inline_min.html iframe/simple_inline_min_ref.html
-== iframe/simple_inline_max.html iframe/simple_inline_max_ref.html
-== iframe/multiple_external.html iframe/multiple_external_ref.html
-== iframe/overflow.html iframe/overflow_ref.html
-== iframe/positioning_margin.html iframe/positioning_margin_ref.html
-== iframe/hide_and_show.html iframe/hide_and_show_ref.html
# gw: race condition here caused by pipelines never painting when removed from document
#== iframe/hide_layers1.html iframe/hide_layers_ref.html
#== iframe/hide_layers2.html iframe/hide_layers_ref.html
-
-== floated_generated_content_a.html floated_generated_content_b.html
-== inline_block_margin_a.html inline_block_margin_ref.html
-== inline_block_img_a.html inline_block_img_ref.html
-== inline_block_baseline_a.html inline_block_baseline_ref.html
-== inline_block_parent_width.html inline_block_parent_width_ref.html
-== inline_block_parent_width_percentage.html inline_block_parent_width_ref.html
-== inline_block_overflow.html inline_block_overflow_ref.html
-== float_table_a.html float_table_ref.html
-== table_containing_block_a.html table_containing_block_ref.html
-== link_style_order.html link_style_order_ref.html
-# Fails intermittently (#3636)
-# == link_style_dynamic_addition.html link_style_dynamic_addition_ref.html
-== percent_height.html percent_height_ref.html
-== inline_block_with_margin_a.html inline_block_with_margin_ref.html
-== table_padding_a.html table_padding_ref.html
+!= image_rendering_auto_a.html image_rendering_pixelated_a.html
+== image_rendering_pixelated_a.html image_rendering_pixelated_ref.html
== img_block_display_a.html img_block_display_ref.html
-== after_block_iteration.html after_block_iteration_ref.html
-== inline_block_percentage_height_a.html inline_block_percentage_height_ref.html
-== inline_block_min_width.html inline_block_min_width_ref.html
-== percentage_height_float_a.html percentage_height_float_ref.html
== img_block_maxwidth_a.html img_block_maxwidth_ref.html
== img_block_maxwidth_b.html img_block_maxwidth_ref.html
-== float_clearance_a.html float_clearance_ref.html
-== block_formatting_context_a.html block_formatting_context_ref.html
-== inline_block_parent_padding_a.html inline_block_parent_padding_ref.html
-== whitespace_nowrap_a.html whitespace_nowrap_ref.html
-== block_formatting_context_relative_a.html block_formatting_context_ref.html
-== block_formatting_context_translation_a.html block_formatting_context_translation_ref.html
-== floated_table_with_margin_a.html floated_table_with_margin_ref.html
-== margins_inside_floats_a.html margins_inside_floats_ref.html
-== block_formatting_context_complex_a.html block_formatting_context_complex_ref.html
-== block_formatting_context_containing_floats_a.html block_formatting_context_containing_floats_ref.html
-== clear_generated_content_table_a.html clear_generated_content_table_ref.html
+== img_dynamic_remove.html img_dynamic_remove_ref.html
+!= img_simple.html img_simple_ref.html
+== img_size_a.html img_size_b.html
+== incremental_float_a.html incremental_float_ref.html
+!= inline_background_a.html inline_background_ref.html
+== inline_block_baseline_a.html inline_block_baseline_ref.html
== inline_block_border_a.html inline_block_border_ref.html
-== vertical_align_top_a.html vertical_align_top_ref.html
-== vertical_align_bottom_a.html vertical_align_bottom_ref.html
-== vertical_align_top_span_a.html vertical_align_top_span_ref.html
-== vertical_align_top_bottom_a.html vertical_align_top_bottom_ref.html
-== vertical_align_sub_a.html vertical_align_sub_ref.html
-== vertical_align_super_a.html vertical_align_super_ref.html
-== vertical_align_text_top_a.html vertical_align_text_top_ref.html
-== vertical_align_text_bottom_a.html vertical_align_text_bottom_ref.html
+== inline_block_img_a.html inline_block_img_ref.html
+== inline_block_margin_a.html inline_block_margin_ref.html
+== inline_block_min_width.html inline_block_min_width_ref.html
+== inline_block_overflow.html inline_block_overflow_ref.html
+== inline_block_overflow_hidden_a.html inline_block_overflow_hidden_ref.html
+== inline_block_parent_padding_a.html inline_block_parent_padding_ref.html
+== inline_block_parent_width.html inline_block_parent_width_ref.html
+== inline_block_parent_width_percentage.html inline_block_parent_width_ref.html
+== inline_block_percentage_height_a.html inline_block_percentage_height_ref.html
+== inline_block_with_margin_a.html inline_block_with_margin_ref.html
+# inline_border_a.html inline_border_b.html
+== inline_element_border_a.html inline_element_border_ref.html
== inline_hypothetical_box_a.html inline_hypothetical_box_ref.html
-== box_sizing_border_box_a.html box_sizing_border_box_ref.html
+== inline_padding_a.html inline_padding_b.html
+# inline_text_align_a.html inline_text_align_b.html
+== inline_whitespace_a.html inline_whitespace_ref.html
+== inline_whitespace_b.html inline_whitespace_ref.html
!= input_height_a.html input_height_ref.html
-== pre_ignorable_whitespace_a.html pre_ignorable_whitespace_ref.html
-== many_brs_a.html many_brs_ref.html
-== table_expansion_to_fit_a.html table_expansion_to_fit_ref.html
-== table_percentage_width_a.html table_percentage_width_ref.html
-== table_percentage_capping_a.html table_percentage_capping_ref.html
+== inset.html inset_ref.html
+!= inset_blackborder.html blackborder_ref.html
+== issue-1324.html issue-1324-ref.html
+== last_child_pseudo_a.html last_child_pseudo_b.html
+== last_of_type_pseudo_a.html last_of_type_pseudo_b.html
== legacy_input_size_attribute_override_a.html legacy_input_size_attribute_override_ref.html
+== legacy_table_border_attribute_a.html legacy_table_border_attribute_ref.html
+== legacy_td_bgcolor_attribute_a.html legacy_td_bgcolor_attribute_ref.html
== legacy_td_width_attribute_a.html legacy_td_width_attribute_ref.html
-== box_sizing_sanity_check_a.html box_sizing_sanity_check_ref.html
-== inline_block_overflow_hidden_a.html inline_block_overflow_hidden_ref.html
-== issue-1324.html issue-1324-ref.html
-== linear_gradients_parsing_a.html linear_gradients_parsing_ref.html
-!= linear_gradients_smoke_a.html linear_gradients_smoke_ref.html
-== linear_gradients_reverse_a.html linear_gradients_reverse_ref.html
+== letter_spacing_a.html letter_spacing_ref.html
+== line_height_a.html line_height_ref.html
!= linear_gradients_corners_a.html linear_gradients_corners_ref.html
== linear_gradients_lengths_a.html linear_gradients_lengths_ref.html
-== incremental_float_a.html incremental_float_ref.html
+== linear_gradients_parsing_a.html linear_gradients_parsing_ref.html
+== linear_gradients_reverse_a.html linear_gradients_reverse_ref.html
+!= linear_gradients_smoke_a.html linear_gradients_smoke_ref.html
+== linebreak_inline_span_a.html linebreak_inline_span_b.html
+flaky_cpu == linebreak_simple_a.html linebreak_simple_b.html
+# Fails intermittently (#3636)
+# == link_style_dynamic_addition.html link_style_dynamic_addition_ref.html
+== link_style_order.html link_style_order_ref.html
+== list_style_position_a.html list_style_position_ref.html
+!= list_style_type_a.html list_style_type_ref.html
+== many_brs_a.html many_brs_ref.html
+== margin_a.html margin_b.html
+== margins_inside_floats_a.html margins_inside_floats_ref.html
+== max_width_float_simple_a.html max_width_float_simple_b.html
+== max_width_simple_a.html max_width_simple_b.html
+== min_max_height_a.html min_max_height_b.html
+== min_width_float_simple_a.html min_width_float_simple_b.html
+== min_width_simple_a.html min_width_simple_b.html
+== minimum_line_height_a.html minimum_line_height_b.html
+== mix_blend_mode_a.html mix_blend_mode_ref.html
+== multiple_css_class_a.html multiple_css_class_b.html
+== negative_margin_uncle_a.html negative_margin_uncle_b.html
+== negative_margins_a.html negative_margins_b.html
+== noscript.html noscript_ref.html
+!= noteq_attr_exists_selector.html attr_exists_selector_ref.html
+== nth_child_pseudo_a.html nth_child_pseudo_b.html
+== nth_last_child_pseudo_a.html nth_last_child_pseudo_b.html
+== nth_last_of_type_pseudo_a.html nth_last_of_type_pseudo_b.html
+== nth_of_type_pseudo_a.html nth_of_type_pseudo_b.html
+== object_element_a.html object_element_b.html
+== only_child_pseudo_a.html only_child_pseudo_b.html
+== only_of_type_pseudo_a.html only_of_type_pseudo_b.html
== opacity_simple_a.html opacity_simple_ref.html
== opacity_stacking_context_a.html opacity_stacking_context_ref.html
-== text_transform_none_a.html text_transform_none_ref.html
-== text_transform_uppercase_a.html text_transform_uppercase_ref.html
-== text_transform_lowercase_a.html text_transform_lowercase_ref.html
-== text_transform_capitalize_a.html text_transform_capitalize_ref.html
+== outline_offset_a.html outline_offset_ref.html
== outlines_simple_a.html outlines_simple_ref.html
== outlines_wrap_a.html outlines_wrap_ref.html
-== letter_spacing_a.html letter_spacing_ref.html
-!= border_black_groove.html border_black_solid.html
-!= border_black_ridge.html border_black_solid.html
-!= border_black_ridge.html border_black_groove.html
-== text_indent_a.html text_indent_ref.html
-== word_spacing_a.html word_spacing_ref.html
-== overflow_wrap_a.html overflow_wrap_ref.html
-!= box_shadow_blur_a.html box_shadow_blur_ref.html
-== box_shadow_border_box_a.html box_shadow_border_box_ref.html
-== box_shadow_default_color_a.html box_shadow_default_color_ref.html
-== box_shadow_paint_order_a.html box_shadow_paint_order_ref.html
-== box_shadow_spread_a.html box_shadow_spread_ref.html
-== box_shadow_inset_a.html box_shadow_inset_ref.html
-== box_shadow_inset_parsing_a.html box_shadow_inset_parsing_ref.html
-!= list_style_type_a.html list_style_type_ref.html
-== list_style_position_a.html list_style_position_ref.html
-== table_colspan_simple_a.html table_colspan_simple_ref.html
-== table_colspan_fixed_a.html table_colspan_fixed_ref.html
-== legacy_td_bgcolor_attribute_a.html legacy_td_bgcolor_attribute_ref.html
-== legacy_table_border_attribute_a.html legacy_table_border_attribute_ref.html
-== inset.html inset_ref.html
== outset.html outset_ref.html
-== empty_cells_a.html empty_cells_ref.html
-== table_caption_top_a.html table_caption_top_ref.html
-== table_caption_bottom_a.html table_caption_bottom_ref.html
-== clip_a.html clip_ref.html
-!= inset_blackborder.html blackborder_ref.html
!= outset_blackborder.html blackborder_ref.html
-== border_radius_clip_a.html border_radius_clip_ref.html
-== border_radius_overlapping_a.html border_radius_overlapping_ref.html
+# Should be == with expected failure. See #2797
+!= overconstrained_block.html overconstrained_block_ref.html
+== overflow_auto.html overflow_simple_b.html
+== overflow_scroll.html overflow_simple_b.html
+== overflow_simple_a.html overflow_simple_b.html
+== overflow_wrap_a.html overflow_wrap_ref.html
+== overflow_xy_a.html overflow_xy_ref.html
+== percent_height.html percent_height_ref.html
+== percentage_height_float_a.html percentage_height_float_ref.html
+== percentage_height_root.html percentage_height_root_ref.html
+== png_rgba_colorspace_a.html png_rgba_colorspace_b.html
+== position_abs_cb_with_non_cb_kid_a.html position_abs_cb_with_non_cb_kid_b.html
+== position_abs_height_width_a.html position_abs_height_width_b.html
+== position_abs_left_a.html position_abs_left_b.html
+== position_abs_margin_top_percentage_a.html position_abs_margin_top_percentage_b.html
+== position_abs_nested_a.html position_abs_nested_b.html
+== position_abs_pseudo_a.html position_abs_pseudo_b.html
+== position_abs_replaced_simple_a.html position_abs_replaced_simple_b.html
+== position_abs_static_y_a.html position_abs_static_y_b.html
+== position_abs_width_percentage_a.html position_abs_width_percentage_b.html
+# commented out because multiple layers don't work with reftests --pcwalton
+# == position_fixed_a.html position_fixed_b.html
+== position_fixed_background_color_a.html position_fixed_background_color_b.html
+== position_fixed_overflow_a.html position_fixed_overflow_b.html
+# == position_fixed_simple_a.html position_fixed_simple_b.html
+# == position_fixed_static_y_a.html position_fixed_static_y_b.html
+== position_fixed_tile_edge.html position_fixed_tile_edge_ref.html
+== position_fixed_tile_edge_2.html position_fixed_tile_edge_ref.html
+== position_fixed_tile_edge_3.html position_fixed_tile_edge_ref.html
+== position_relative_a.html position_relative_b.html
+== position_relative_top_percentage_a.html position_relative_top_percentage_b.html
+== pre_ignorable_whitespace_a.html pre_ignorable_whitespace_ref.html
+== pseudo_element_a.html pseudo_element_b.html
+== pseudo_inherit.html pseudo_inherit_ref.html
+== root_height_a.html root_height_b.html
+== root_margin_collapse_a.html root_margin_collapse_b.html
+== root_pseudo_a.html root_pseudo_b.html
+== setattribute_id_restyle_a.html setattribute_id_restyle_b.html
== stacking_context_overflow_a.html stacking_context_overflow_ref.html
== stacking_context_overflow_relative_outline_a.html stacking_context_overflow_relative_outline_ref.html
-== word_break_a.html word_break_ref.html
-== outline_offset_a.html outline_offset_ref.html
-== filter_opacity_a.html filter_opacity_ref.html
-== filter_sepia_a.html filter_sepia_ref.html
-== mix_blend_mode_a.html mix_blend_mode_ref.html
-!= text_overflow_a.html text_overflow_ref.html
-== floated_list_item_a.html floated_list_item_ref.html
+== table_auto_width.html table_auto_width_ref.html
+== table_caption_bottom_a.html table_caption_bottom_ref.html
+== table_caption_top_a.html table_caption_top_ref.html
+== table_colspan_fixed_a.html table_colspan_fixed_ref.html
+== table_colspan_simple_a.html table_colspan_simple_ref.html
+== table_containing_block_a.html table_containing_block_ref.html
+== table_expansion_to_fit_a.html table_expansion_to_fit_ref.html
+== table_padding_a.html table_padding_ref.html
+== table_percentage_capping_a.html table_percentage_capping_ref.html
+== table_percentage_width_a.html table_percentage_width_ref.html
+== text_align_complex_a.html text_align_complex_ref.html
== text_align_justify_a.html text_align_justify_ref.html
+== text_decoration_cached.html text_decoration_cached_ref.html
+# text_decoration_propagation_a.html text_decoration_propagation_b.html
+!= text_decoration_smoke_a.html text_decoration_smoke_ref.html
+== text_indent_a.html text_indent_ref.html
== text_justify_none_a.html text_justify_none_ref.html
+!= text_overflow_a.html text_overflow_ref.html
== text_overflow_basic_a.html text_overflow_basic_ref.html
-== text_align_complex_a.html text_align_complex_ref.html
-== percentage_height_root.html percentage_height_root_ref.html
-== canvas_transform_a.html canvas_transform_ref.html
-== canvas_lineto_a.html canvas_lineto_ref.html
-!= text_decoration_smoke_a.html text_decoration_smoke_ref.html
-== hide_after_create.html hide_after_create_ref.html
-== overflow_xy_a.html overflow_xy_ref.html
-== text_shadow_simple_a.html text_shadow_simple_ref.html
-== text_shadow_decorations_a.html text_shadow_decorations_ref.html
== text_shadow_blur_a.html text_shadow_blur_ref.html
-!= image_rendering_auto_a.html image_rendering_pixelated_a.html
-== image_rendering_pixelated_a.html image_rendering_pixelated_ref.html
-== background_size_a.html background_size_ref.html
-== background_size_shorthand_a.html background_size_shorthand_ref.html
+== text_shadow_decorations_a.html text_shadow_decorations_ref.html
+== text_shadow_simple_a.html text_shadow_simple_ref.html
+== text_transform_capitalize_a.html text_transform_capitalize_ref.html
+== text_transform_lowercase_a.html text_transform_lowercase_ref.html
+== text_transform_none_a.html text_transform_none_ref.html
+== text_transform_uppercase_a.html text_transform_uppercase_ref.html
+== upper_id_attr.html upper_id_attr_ref.html
+flaky_cpu,experimental == vertical-lr-blocks.html vertical-lr-blocks_ref.html
+== vertical_align_bottom_a.html vertical_align_bottom_ref.html
+== vertical_align_sub_a.html vertical_align_sub_ref.html
+== vertical_align_super_a.html vertical_align_super_ref.html
+== vertical_align_text_bottom_a.html vertical_align_text_bottom_ref.html
+== vertical_align_text_top_a.html vertical_align_text_top_ref.html
+== vertical_align_top_a.html vertical_align_top_ref.html
+== vertical_align_top_bottom_a.html vertical_align_top_bottom_ref.html
+== vertical_align_top_span_a.html vertical_align_top_span_ref.html
+== visibility_hidden.html visibility_hidden_ref.html
+== whitespace_nowrap_a.html whitespace_nowrap_ref.html
+== whitespace_pre.html whitespace_pre_ref.html
+== width_nonreplaced_block_simple_a.html width_nonreplaced_block_simple_b.html
+== word_break_a.html word_break_ref.html
+== word_spacing_a.html word_spacing_ref.html