# Copyright 2016 The PDFium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# List of tests to be skipped, one per line.
# There are four space-separated columns per line
# Each column (except column 0) can contain a comma-separated list of values.
#
# Column 0: test file name
# Column 1: platform: *, win, mac, linux
# Column 2: v8 support: *, nov8, v8
# Column 3: xfa support: *, noxfa, xfa
# Column 4: rendering support: *, agg, gdi, skia
#
# All columns on a line on a line must match, but filenames may be repeated
# on subsequent lines to suppress more cases.  Within each column, any one of
# the comma-separated values must match in order for the colum to "match".
# The filenames and keywords are case-sensitive.
#
# Try to keep the file alphabetized within each category of test.

#
# Corpus tests
#
12.pdf mac * * agg
1_1_textbox.pdf * * * *
1_2_typewriter.pdf * * * *
1_3_callout.pdf * * * *
1_matrix.pdf mac * * agg
1m_diff_lsjdf.pdf mac * * agg
1m_same_xxxx.pdf mac * * agg
2_11_stamp3.pdf mac * * agg
2_6_textbox.pdf * * * *
2_color_calrgb.pdf mac * * agg
2_color_indexed.pdf mac * * agg
3_4_textbox.pdf * * * *
3_interpolate_image.pdf mac * * agg
3bigpreview.pdf mac * * agg
4_35.pdf mac * * agg
4_39.pdf mac * * agg
5.1.pdf mac * * agg
5.2.pdf * * * *
5.5_simple_font.pdf mac * * agg
8.2_name_dest_f_dest.pdf mac * * agg
8.2_outline.pdf mac * * agg
8.3_presentation.pdf mac * * agg
FRC_10_8.2.2__T8.3_original_file.pdf * * * *
FRC_11_8.2.2__T8.3_first_last_exchange.pdf * * * *
FRC_12_8.2.2__T8.3_first_outline_obj_ID.pdf * * * *
FRC_13_8.2.2__T8.3_Count_edit300.pdf * * * *
FRC_14_8.2.2__T8.3_Count_edit0.pdf * * * *
FRC_15_8.2.2__T8.3_Count_edit1.pdf * * * *
FRC_16_8.2.2__T8.3_Count_edit_1.pdf * * * *
FRC_1_8.2.2__T8.3_First_empty.pdf * * * *
FRC_2_8.2.2__T8.3_Last_empty.pdf * * * *
FRC_3.5_P__3616_Password_1.pdf * * * *
FRC_3_8.2.2_Type_empty.pdf * * * *
FRC_4_8.2.2__T8.3_Count_empty.pdf * * * *
FRC_5_8.2.2__T8.3_First_remove.pdf * * * *
FRC_6_8.2.2__T8.3_Last_remove.pdf * * * *
FRC_7_8.2.2_Type_remove.pdf * * * *
FRC_8.4.1_Annotations_M.pdf * * * *
FRC_8.4.1_Annotations_NM.pdf * * * *
FRC_8.5_Page_C_SubmitForm.pdf * * * *
FRC_8.5_Page_PI_ResetForm_Phantom.pdf * * * *
FRC_8.5_Widget_F.pdf * nov8 * *
FRC_8_8.2.2__T8.3_Count_remove.pdf * * * *
FRC_9_8.2.2__T8.3_remove_first_item.pdf * * * *
action.pdf * * * *
action_execute_a_menu_item.pdf mac * * agg
action_hide_show_form.pdf mac * * agg
action_on_focus.pdf mac * * agg
action_open_a_file.pdf mac * * agg
action_pdf_save_close.pdf mac * * agg
action_reset.pdf mac * * agg
action_run_javascript.pdf mac * * agg
action_submit_a_form.pdf mac * * agg
all_trigger_alert.pdf * * * *
all_trigger_mailmsg.pdf * * * *
all_trigger_print.pdf * * * *
all_trigger_run_js_lunchurl.pdf mac * * agg
all_trigger_run_js_maildoc.pdf mac * * agg
annotation_highlight_author_content.pdf mac * * agg
annotation_highlight_long_content.pdf mac * * agg
annotation_highlight_no_author.pdf mac * * agg
app_launchurl.pdf mac * * agg
appstoredescription3.1_en_updated.pdf mac * * agg
bookmark.pdf * * * *
bookmarkgetcolor.pdf mac * * agg
bug_0_length_line.pdf mac * * agg

# TODO(pdfium:1812): Remove after associated bug is fixed
bug_0_length_line.pdf * * * skia

bug_0_width_line.pdf mac * * agg
bug_440132.pdf mac * * agg
bug_white_space.pdf mac * * agg
calcorderindex_test.pdf * * * *
calculate_average.pdf mac * * agg
calculate_order.pdf * * * *
calculate_sum_a_b_c.pdf mac * * agg
calculate_validate.pdf mac * * agg
calculate_validate.pdf * nov8 * *
ch_1.pdf * * * *
check_box.pdf * * * *
color.pdf mac * * agg
colorspace.pdf mac * * agg
colorspace_test1.pdf mac * * agg
combo_box.pdf * * * *
combo_box_format.pdf mac * * agg
date.pdf mac * * agg
edit_transform.pdf mac * * agg
en_contact.pdf mac * * agg
en_diy.pdf mac * * agg
en_foxit.pdf mac * * agg
en_fqa2.pdf mac * * agg
en_introduce.pdf mac * * agg
en_tem.pdf mac * * agg
en_uicase_.pdf mac * * agg
event.change.pdf mac * * agg
event.changeex.pdf mac * * agg
event.keydown.pdf mac * * agg
event.keydown_1_.pdf mac * * agg
event.type_name.pdf mac * * agg
event.value.pdf mac * * agg
event_change.pdf mac * * agg
example_001.pdf mac * * agg
example_002.pdf mac * * agg
example_003.pdf mac * * agg
example_004.pdf mac * * agg
example_005.pdf mac * * agg
example_006.pdf mac * * agg
example_007.pdf mac * * agg
example_008.pdf mac * * agg
example_009.pdf mac * * agg
example_010.pdf mac * * agg
example_011.pdf mac * * agg
example_012.pdf mac * * agg
example_013.pdf mac * * agg
example_014.pdf mac * * agg
example_015.pdf mac * * agg
example_016.pdf mac * * agg
example_017.pdf mac * * agg
example_018.pdf mac * * agg
example_019.pdf mac * * agg
example_020.pdf mac * * agg
example_021.pdf mac * * agg
example_022.pdf mac * * agg
example_023.pdf mac * * agg
example_024.pdf mac * * agg
example_025.pdf mac * * agg
example_026.pdf mac * * agg
example_027.pdf mac * * agg
example_028.pdf mac * * agg
example_029.pdf mac * * agg
example_030.pdf mac * * agg
example_031.pdf mac * * agg
example_032.pdf mac * * agg
example_033.pdf mac * * agg
example_034.pdf mac * * agg
example_035.pdf mac * * agg
example_036.pdf mac * * agg
example_037.pdf mac * * agg
example_038.pdf mac * * agg
example_039.pdf mac * * agg
example_040.pdf mac * * agg
example_041.pdf mac * * agg
example_042.pdf mac * * agg
example_043.pdf mac * * agg
example_044.pdf mac * * agg
example_045.pdf mac * * agg
example_046.pdf mac * * agg
example_047.pdf mac * * agg
example_048.pdf mac * * agg
example_049.pdf mac * * agg
example_050.pdf mac * * agg
example_051.pdf mac * * agg
example_052.pdf mac * * agg
example_053.pdf mac * * agg
example_054.pdf mac * * agg
example_055.pdf mac * * agg
example_056.pdf mac * * agg
example_057.pdf mac * * agg
example_058.pdf mac * * agg
example_059.pdf mac * * agg
example_060.pdf mac * * agg
example_061.pdf mac * * agg
example_062.pdf mac * * agg
example_063.pdf mac * * agg
example_064.pdf mac * * agg
example_065.pdf mac * * agg
fillform.pdf * * * *
form_action_trigger.pdf * * * *
form_button_sign_url.pdf * * * *
form_combo_sign_url.pdf * * * *
form_combobox0.pdf * * * *
form_combobox_actioin_goto.pdf * * * *
form_combobox_date.pdf mac * * agg
form_combobox_date.pdf * nov8 * *
form_combobox_date1.pdf * * * *
form_combobox_date2.pdf mac * * agg
form_combobox_date2.pdf * nov8 * *
form_combobox_importform.pdf * * * *
form_combobox_num.pdf mac * * agg
form_combobox_num.pdf * nov8 * *
form_combobox_per.pdf mac * * agg
form_combobox_per.pdf * nov8 * *
form_combobox_plus.pdf mac * * agg
form_combobox_plus.pdf * nov8 * *
form_combobox_product.pdf mac * * agg
form_combobox_product.pdf * nov8 * *
form_combobox_resetform.pdf * * * *
form_combobox_time.pdf mac * * agg
form_combobox_time.pdf * nov8 * *
form_list.pdf * * * *
form_list1.pdf * * * *
form_same.pdf mac * * agg
form_text_sign_url.pdf * * * *
format_combo_box.pdf mac * * agg
format_combo_box.pdf * nov8 * *
format_custom_format.pdf * nov8 * *
format_custom_keystroke.pdf * * * *
format_date.pdf * nov8 * *
format_number.pdf mac * * agg
format_percentage.pdf mac * * agg
format_special.pdf * nov8 * *
format_text_color.pdf mac * * agg
formfield.pdf * * * *
getarray.pdf mac * * agg

# TODO(pdfium:489): Remove after associated bug is fixed.
gradient_many_stops.pdf * * * agg

javascriptaction.pdf * * * *
jetman_std.pdf mac * * agg
jetman_std_fixed.pdf mac * * agg
js_calculate.pdf * * * *
list_box.pdf * * * *
negative.pdf mac * * agg
new_certify1.pdf mac * * agg
new_signature1.pdf mac * * agg
new_signature2.pdf mac * * agg
new_stamp4.pdf mac * * agg
new_stamp5.pdf mac * * agg
new_textmarkup1.pdf mac * * agg
new_textmarkup1_hidden.pdf mac * * agg
new_textmarkup2.pdf mac * * agg
new_textmarkup2_hidden.pdf mac * * agg
new_textmarkup4.pdf mac * * agg
new_textmarkup4_hidden.pdf mac * * agg
new_textmarkup5.pdf mac * * agg
new_textmarkup5_hidden.pdf mac * * agg
new_textmarkup6.pdf mac * * agg
new_textmarkup7.pdf mac * * agg
new_textmarkup7_hidden.pdf mac * * agg
new_textmarkup8.pdf mac * * agg
new_textmarkup8_hidden.pdf mac * * agg
number.pdf * * * *
octest.pdf mac * * agg
open_a_weblink.pdf mac * * agg
path_10_jd.pdf mac * * agg
path_5_pattern.pdf mac * * agg
path_6_graphics4.5.5.pdf mac * * agg
path_7.pdf mac * * agg
path_9.pdf mac * * agg
percentage.pdf mac * * agg
push_button.pdf * * * *
quick_start_guide.pdf mac * * agg
radio_button.pdf * * * *
run_custom_validate_script.pdf * * * *
show_1.pdf mac * * agg
signature.pdf * * * *
signature_4.pdf * * * *
simplified_field_notation.pdf mac * * agg
special.pdf mac * * agg
submit_form.pdf mac * * agg
test_app_beep.pdf * * * *
test_control.pdf * * * *
text_field.pdf * * * *
text_field_font_input_decimal_point.pdf mac * * agg
text_field_multiline_line_spacing.pdf mac * * agg
thread_action.pdf mac * * agg
time.pdf mac * * agg
transformation.pdf mac * * agg
transparent.pdf mac * * agg
whats_new_in_v3.0.pdf mac * * agg
widget_javascript.pdf mac * * agg

# TODO(pdfium:1990): Remove after associated bug is fixed
xfermodes2.pdf * * * agg

zh_file1.pdf mac * * agg
zh_function_list.pdf mac * * agg
zh_shared_document.pdf mac * * agg

# TODO(hnakashima): These might never have been run. Go over them and fix.

FRC_8.5_E&X.pdf * * * *
FRC_8.5_O&PO_GoToE.pdf * * * *
FRC_8.5_OpenAction&O_URI.pdf * * * *
FRC_8.5_PC&C_GoToE_T_T.pdf * * * *
FRC_8.5_PC_GoToE_T_R&P&A.pdf * * * *
FRC_8.5_PO_GoToE_T_R&N.pdf * * * *

# xfa_specific

Choose.pdf * * * *
data_binding.pdf * * * *
# TODO(npm): Add proper evt for MouseEvents.
MouseEvents_enter.pdf * * * *
MouseEvents_exit.pdf * * * *
Oneof3.pdf * * * *
Sum.pdf * * * *
Test_CheckBox.pdf * * * *

# GDI

# TODO(pdfium:2054): Remove after associated bug is fixed
1.pdf * * * gdi
123.pdf * * * gdi
1_image.pdf * * * gdi
3_interpolate_image.pdf * * * gdi
3bigpreview.pdf * * * gdi
4_3.pdf * * * gdi
4_36.pdf * * * gdi
FRC_10_8.2.4_View_C.pdf * * * gdi
FRC_8.4.1_Annotations_Type.pdf * * * gdi
FRC_8.4.3_Border_Stypes_W_different_values.pdf * * * gdi
FRC_8.5_Screen_Img_D_Launch.pdf * * * gdi
FRC_8.5_URI_IsMap.pdf * * * gdi
bug_691967.pdf * * * gdi
bug_86459.pdf * * * gdi
bug_880920.pdf * * * gdi
ch_7_0.pdf * * * gdi
ch_7_1.pdf * * * gdi
ch_7_4.pdf * * * gdi
ch_7_5.pdf * * * gdi
ch_7_6.pdf * * * gdi
ch_7_7.pdf * * * gdi
ch_7_8.pdf * * * gdi
en_tem.pdf * * * gdi
example_001.pdf * * * gdi
example_003.pdf * * * gdi
example_004.pdf * * * gdi
example_005.pdf * * * gdi
example_006.pdf * * * gdi
example_007.pdf * * * gdi
example_008.pdf * * * gdi
example_009.pdf * * * gdi
example_010.pdf * * * gdi
example_011.pdf * * * gdi
example_013.pdf * * * gdi
example_015.pdf * * * gdi
example_016.pdf * * * gdi
example_017.pdf * * * gdi
example_018.pdf * * * gdi
example_019.pdf * * * gdi
example_020.pdf * * * gdi
example_021.pdf * * * gdi
example_022.pdf * * * gdi
example_023.pdf * * * gdi
example_024.pdf * * * gdi
example_025.pdf * * * gdi
example_026.pdf * * * gdi
example_027.pdf * * * gdi
example_029.pdf * * * gdi
example_030.pdf * * * gdi
example_031.pdf * * * gdi
example_032.pdf * * * gdi
example_033.pdf * * * gdi
example_034.pdf * * * gdi
example_035.pdf * * * gdi
example_036.pdf * * * gdi
example_037.pdf * * * gdi
example_038.pdf * * * gdi
example_039.pdf * * * gdi
example_040.pdf * * * gdi
example_041.pdf * * * gdi
example_042.pdf * * * gdi
example_043.pdf * * * gdi
example_044.pdf * * * gdi
example_045.pdf * * * gdi
example_046.pdf * * * gdi
example_047.pdf * * * gdi
example_048.pdf * * * gdi
example_049.pdf * * * gdi
example_050.pdf * * * gdi
example_051.pdf * * * gdi
example_052.pdf * * * gdi
example_053.pdf * * * gdi
example_055.pdf * * * gdi
example_056.pdf * * * gdi
example_057.pdf * * * gdi
example_058.pdf * * * gdi
example_059.pdf * * * gdi
example_060.pdf * * * gdi
example_061.pdf * * * gdi
example_062.pdf * * * gdi
example_063.pdf * * * gdi
example_064.pdf * * * gdi
example_065.pdf * * * gdi
image_8bit_devicergb_dctdecode.pdf * * * gdi
image_bmp.pdf * * * gdi
image_jpg.pdf * * * gdi
image_png.pdf * * * gdi
image_tif.pdf * * * gdi
mask_array.pdf * * * gdi
new_stamp2.pdf * * * gdi
quick_start_guide.pdf * * * gdi
whats_new_in_v3.0.pdf * * * gdi

# TODO(pdfium:2055): Remove after associated bug is fixed
Date_FormCale.pdf * * * gdi
FRC_3.5_P__3648_Password_1.pdf * * * gdi
FRC_8.4.1_Annotations_AP_N_R.D_.pdf * * * gdi
FRC_8.4.1_Annotations_AS_Off_.pdf * * * gdi
FRC_8.4.1_Annotations_AS_Yes_.pdf * * * gdi
FRC_8.5_Bl_Hide.pdf * * * gdi
FRC_8.5_E_GoTo_D.pdf * * * gdi
FRC_8.5_Fo_URI_Base.pdf * * * gdi
FRC_8.5_U_GoToR_NewWindow.pdf * * * gdi
FRC_8.5_U_GoToR_NewWindow_2.pdf * * * gdi
FRC_8.5_Widget_C.pdf * * * gdi
FRC_8.5_Widget_F.pdf * * * gdi
FRC_8.5_Widget_K.pdf * * * gdi
FRC_8.5_Widget_V.pdf * * * gdi
FRC_8.5_X_GoToR_D.pdf * * * gdi
Line_Stroke.pdf * * * gdi
Oneof1.pdf * * * gdi
Oneof2.pdf * * * gdi
PagePosition_any_rest.pdf * * * gdi
PagePosition_first.pdf * * * gdi
PagePosition_last.pdf * * * gdi
PagePosition_no_any.pdf * * * gdi
PagePosition_rest.pdf * * * gdi
PagePosition_rest_any.pdf * * * gdi
Test_DateField_locale_en_CA.pdf * * * gdi
Test_DateField_locale_en_GB.pdf * * * gdi
Test_DateField_locale_en_US.pdf * * * gdi
Test_DateField_locale_fr_CA.pdf * * * gdi
Test_DateField_locale_fr_FR.pdf * * * gdi
Test_DateField_locale_nl_NL.pdf * * * gdi
Test_DateField_locale_zh_CN.pdf * * * gdi
Test_DateField_locale_zh_HK.pdf * * * gdi
Test_Drop_downList.pdf * * * gdi
Test_NumericField.pdf * * * gdi
Test_PasswordField.pdf * * * gdi
Test_RadioButton.pdf * * * gdi
Test_ResetButton.pdf * * * gdi
Test_TextField.pdf * * * gdi
TimeField.pdf * * * gdi
action_execute_a_menu_item.pdf * * * gdi
action_hide_show_form.pdf * * * gdi
action_on_focus.pdf * * * gdi
action_reset.pdf * * * gdi
action_run_javascript.pdf * * * gdi
action_submit_a_form.pdf * * * gdi
all_trigger_browsefordoc.pdf * * * gdi
all_trigger_newdoc.pdf * * * gdi
all_trigger_run_js_lunchurl.pdf * * * gdi
all_trigger_run_js_maildoc.pdf * * * gdi
annotation_highlight_author_content.pdf * * * gdi
annotation_highlight_long_content.pdf * * * gdi
annotation_highlight_no_author.pdf * * * gdi
app_launchurl.pdf * * * gdi
bi.pdf * * * gdi
bug_434.pdf * * * gdi
bug_440132.pdf * * * gdi
calculate_average.pdf * * * gdi
calculate_sum_a_b_c.pdf * * * gdi
calculate_validate.pdf * * * gdi
check_box_no_color.pdf * * * gdi
combo_box_format.pdf * * * gdi
date.pdf * * * gdi
event.change.pdf * * * gdi
event.changeex.pdf * * * gdi
event.keydown.pdf * * * gdi
event.keydown_1_.pdf * * * gdi
event.shift.pdf * * * gdi
event.type_name.pdf * * * gdi
event.value.pdf * * * gdi
event_change.pdf * * * gdi
event_fieldfull.pdf * * * gdi
event_fieldfull_1_.pdf * * * gdi
example_014.pdf * * * gdi
example_054.pdf * * * gdi
form_button0.pdf * * * gdi
form_button1.pdf * * * gdi
form_button10.pdf * * * gdi
form_button2.pdf * * * gdi
form_button3.pdf * * * gdi
form_button4.pdf * * * gdi
form_button5.pdf * * * gdi
form_button7.pdf * * * gdi
form_button8.pdf * * * gdi
form_button9.pdf * * * gdi
form_checkbox.pdf * * * gdi
form_checkbox1.pdf * * * gdi
form_checkbox2.pdf * * * gdi
form_checkbox3.pdf * * * gdi
form_combobox_date.pdf * * * gdi
form_combobox_date2.pdf * * * gdi
form_combobox_num.pdf * * * gdi
form_combobox_per.pdf * * * gdi
form_combobox_plus.pdf * * * gdi
form_combobox_product.pdf * * * gdi
form_combobox_time.pdf * * * gdi
form_radio.pdf * * * gdi
form_same.pdf * * * gdi
format_alert_box.pdf * * * gdi
format_combo_box.pdf * * * gdi
format_custom_format.pdf * * * gdi
format_date.pdf * * * gdi
format_number.pdf * * * gdi
format_percentage.pdf * * * gdi
format_special.pdf * * * gdi
format_text_color.pdf * * * gdi
getarray.pdf * * * gdi
js_value_chack_box.pdf * * * gdi
negative.pdf * * * gdi
new_certify1.pdf * * * gdi
new_signature1.pdf * * * gdi
new_signature2.pdf * * * gdi
none.pdf * * * gdi
open_a_weblink.pdf * * * gdi
percentage.pdf * * * gdi
rotate.pdf * * * gdi
show_1.pdf * * * gdi
simplified_field_notation.pdf * * * gdi
special.pdf * * * gdi
submit_form.pdf * * * gdi
text_field_font_input_decimal_point.pdf * * * gdi
text_field_multiline_line_spacing.pdf * * * gdi
time.pdf * * * gdi
validate_alert_box.pdf * * * gdi
widget_javascript.pdf * * * gdi

# TODO(pdfium:2056): Remove after associated bug is fixed
1_10_watermark.pdf * * * gdi
1_matrix.pdf * * * gdi
2_color_tiling.pdf * * * gdi
2_shading_type_6_00.pdf * * * gdi
2_shading_type_6_001.pdf * * * gdi
2_uncolor_tiling.pdf * * * gdi
FRC_11_8.2.4_View_edit.pdf * * * gdi
FRC_12_8.2.4_View_remove_all.pdf * * * gdi
FRC_13_8.2.4_View_remove_value.pdf * * * gdi
FRC_14_8.2.4_Sort_remove_all.pdf * * * gdi
FRC_15_8.2.4_Sort_remove_value.pdf * * * gdi
FRC_1_8.2.4_Type_8.6_.pdf * * * gdi
FRC_2_8.2.4_Type_8.6__remove_value.pdf * * * gdi
FRC_3.5_AuthEvent_EFOpen.pdf * * * gdi
FRC_3.5_CFM_AESV2__EncryptMetadata_F.pdf * * * gdi
FRC_3.5_CF_EFF_StdCF_Strf_Stmf_Identity.pdf * * * gdi
FRC_3.5_CF_Strf_stmf_StdCF.pdf * * * gdi
FRC_3.5_EncryptMetadata_None.pdf * * * gdi
FRC_3.5_V_4_CFM_V2_.pdf * * * gdi
FRC_3.5_V_5_CFM_AESV3.pdf * * * gdi
FRC_3.5_v_1_length_40_Filter_standard.pdf * * * gdi
FRC_3.5_v_2_length_128_AuthEvent_DocOpen_.pdf * * * gdi
FRC_3_8.2.4_Type_8.6__edit_.pdf * * * gdi
FRC_4.5.5_Pattern_shading.pdf * * * gdi
FRC_4.5.5_Pattern_tiling.pdf * * * gdi
FRC_4_8.2.4_Schema_8.6__remove_all.pdf * * * gdi
FRC_5_8.2.4_Schema_8.6__remove_value.pdf * * * gdi
FRC_6_8.2.4_Schema_8.6__remove_obj.pdf * * * gdi
FRC_7_8.2.4_View_H.pdf * * * gdi
FRC_8_8.2.4_View_D.pdf * * * gdi
FRC_9_8.2.4_View_T.pdf * * * gdi
annotation_circle_fill_opacity.pdf * * * gdi
annotation_square_fill_opacity.pdf * * * gdi
annotation_square_fill_opacity_dash.pdf * * * gdi
bug_0_length_line.pdf * * * gdi
bug_883026.pdf * * * gdi
clipping_text.pdf * * * gdi
en_fqa.pdf * * * gdi
en_introduce.pdf * * * gdi
en_system.pdf * * * gdi
example_012.pdf * * * gdi
gradient_many_stops.pdf * * * gdi
group_xobject.pdf * * * gdi
image_gif.pdf * * * gdi
image_ico.pdf * * * gdi
new_pdfsign1.pdf * * * gdi
new_pdfsign2.pdf * * * gdi
new_pdfsign3.pdf * * * gdi
new_pdfsign4.pdf * * * gdi
new_stamp3.pdf * * * gdi
path_10_jd.pdf * * * gdi
path_5_pattern.pdf * * * gdi
path_7.pdf * * * gdi
path_9.pdf * * * gdi
transformation.pdf * * * gdi
transparent1.pdf * * * gdi
xfermodes.pdf * * * gdi
xfermodes2.pdf * * * gdi
xfermodes3.pdf * * * gdi

#
# JavaScript tests
#
bug_679642.in * * noxfa *
bug_679643.in * * noxfa *
bug_735912.in * * noxfa *

# JS tests in nov8 mode expect empty results. This one will
# not be empty as the callback is not js-based.
named_action.in * nov8 * *

# xfa_specific

# TODO(pdfium:1106): Remove after associated bug is fixed
resolve_nodes_1.pdf * * * *

#
# Pixel tests
#

# TODO(pdfium:1098): Remove after associated bug is fixed
bug_1098.in * * * *

# TODO(chromium:1131694): Remove after associated bug is fixed
bug_1131694.in * * * *

# TODO(pdfium:1747): Remove after associated bug is fixed
bug_1258634.in * * * *

# TODO(pdfium:1331): Remove after associated bug is fixed
bug_1331.in * * * *

# TODO(chromium:1356149): Remove after associated bug is fixed
bug_1356149.in mac * * agg

# This test is intentionally suppressed on Windows. Normally, Windows provides
# the Symbol font, so this PDF would render correctly. However, in the hermetic
# test environment, there is no Symbol font and the rendering is incorrect.
bug_1442723.in win * * *

# TODO(pdfium:1457): Remove after associated bug is fixed
bug_1457.in * * * *

# TODO(pdfium:1519): Remove after associated bug is fixed
bug_1519.in * * * *

# TODO(pdfium:1571): Remove after associated bug is fixed
bug_1571.in * * * *

# TODO(pdfium:1723): Remove after associated bug is fixed
bug_1723.in * * * *

# TODO(pdfium:1972): Remove after associated bug is fixed
bug_1972_1.in * * * agg
bug_1972_2.in * * * agg
bug_1972_3.in * * * agg

# TODO(pdfium:1973): Remove after associated bug is fixed
bug_1973.in * * * *

# TODO(pdfium:2001): Remove after associated bug is fixed
bug_2001.pdf * * * *

# TODO(chromium:237527): Remove after associated bug is fixed
bug_237527_1.in * * * *

# TODO(chromium:451366): Remove after associated bug is fixed
bug_451366.in * * * agg

# TODO(pdfium:492): Remove after associated bug is fixed
bug_492.in * nov8 * *

# TODO(chromium:725555, skia:9265): Remove after associated bug is fixed
bug_725555.in * * * skia

# TODO(chromium:983289): Remove after associated bug is fixed
bug_983289.in * * * agg

# TODO(pdfium:1747): Remove after associated bug is fixed
jpxdecode.in * * * *
jpxdecode_without_bitspercomponent.in * * * *
jpxdecode_without_colorspace.in * * * *

# TODO(chromium:1028991): Remove after associated bug is fixed
reset_button.in * * * *

# xfa_specific

# TODO(pdfium:1095): Remove after associated bug is fixed
bug_997412.in win * * *
# TODO(pdfium:1107): Remove after associated bug is fixed
standard_symbols.pdf * * * *
# TODO(pdfium:1095): Remove after associated bug is fixed
xfa_example.in win * * *
# TODO(pdfium:1095): Remove after associated bug is fixed
xfa_textfield.in win * * *

# GDI

# TODO(pdfium:2054): Remove after associated bug is fixed
bug_1258968.in * * * gdi
bug_1383708.in * * * gdi

# TODO(pdfium:2055): Remove after associated bug is fixed
barcode_test.pdf * * * gdi
bug_1072440.in * * * gdi
bug_113910.in * * * gdi
bug_1282.in * * * gdi
bug_1304714.in * * * gdi
bug_1337.in * * * gdi
bug_1372651.in * * * gdi
bug_725389.in * * * gdi
bug_733528.in * * * gdi
bug_736695_1.in * * * gdi
bug_736695_2.in * * * gdi
bug_736695_3.in * * * gdi
bug_736695_4.in * * * gdi
bug_983137.in * * * gdi
checkbox_radiobutton.in * * * gdi
checkbox_radiobutton_hide.in * * * gdi
checkbox_radiobutton_reset.in * * * gdi
combobox_form.in * * * gdi
dynamic_list_box_allow_multiple_selection.pdf * * * gdi
dynamic_password_field_background_fill.pdf * * * gdi
dynamic_table_color_and_width.pdf * * * gdi
password.in * * * gdi
resolve_nodes_0.pdf * * * gdi
scrollable_widgets1.in * * * gdi
scrollable_widgets2.in * * * gdi
static_list_box_caption.pdf * * * gdi
static_password_field_rotate.pdf * * * gdi
text_form_custom_font.in * * * gdi
xfa_bmp_image.in * * * gdi
xfa_gif_image.in * * * gdi
xfa_jpg_image.in * * * gdi
xfa_node_caption.pdf * * * gdi
xfa_png_image.in * * * gdi
xfa_rectangle_node.in * * * gdi
xfa_tiff_image.in * * * gdi
xfa_tiff_lzw_image.in * * * gdi
xfa_tiff_packbits_image.in * * * gdi

# TODO(pdfium:2056): Remove after associated bug is fixed
bug_1015233.in * * * gdi
bug_1099446.in * * * gdi
bug_1161.in * * * gdi
bug_1236.in * * * gdi
bug_1288_1.in * * * gdi
bug_1330.in * * * gdi
bug_1395648.in * * * gdi
bug_1396266.in * * * gdi
bug_1430333.in * * * gdi
bug_1822.in * * * gdi
bug_1847.in * * * gdi
bug_1949.in * * * gdi
bug_1972_1.in * * * gdi
bug_1972_3.in * * * gdi
bug_1995.in * * * gdi
bug_451366.in * * * gdi
bug_632.in * * * gdi
bug_660850.in * * * gdi
long_dashed_line.in * * * gdi
matte.in * * * gdi
