# 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_highlight_opacity.pdf * * * gdi
annotation_square_fill_opacity.pdf * * * gdi
annotation_square_fill_opacity_dash.pdf * * * gdi
bug_0_length_line.pdf * * * gdi
bug_668762.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
