# 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
2_halftone.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
bug_898443.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_foxit.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
xfermodeimagefilter.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
11.pdf * * * gdi
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
3_image_imagemask.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
transparent.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_1012369.in * * * gdi
bug_1258968.in * * * gdi
bug_1383708.in * * * gdi
bug_1469.in * * * gdi
bug_1693.in * * * gdi
bug_1733.in * * * gdi
bug_1750.in * * * gdi
bug_512557.pdf * * * gdi
bug_71.in * * * gdi
bug_718762.in * * * gdi
bug_867501.pdf * * * gdi
bug_966263.in * * * gdi
bug_986108.in * * * gdi
image_transformer_other.in * * * gdi
jpxdecode_without_smaskindata.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_1087.pdf * * * 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_1845.in * * * gdi
bug_1847.in * * * gdi
bug_1949.in * * * gdi
bug_1966.in * * * gdi
bug_1972_1.in * * * gdi
bug_1972_3.in * * * gdi
bug_1976.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
