# 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, skia, skiapaths
#
# 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
#
# TODO(pdfium:1811): Remove after associated bug is fixed
11.pdf * * * skia

12.pdf mac * * *
1_1_textbox.pdf * * * *
1_2_typewriter.pdf * * * *
1_3_callout.pdf * * * *

# TODO(pdfium:1805): Remove after associated bug is fixed
1_matrix.pdf * * * skia,skiapaths

1_matrix.pdf mac * * *
1m_diff_lsjdf.pdf mac * * *
1m_same_xxxx.pdf mac * * *
2_11_stamp3.pdf mac * * *
2_6_textbox.pdf * * * *
2_color_calrgb.pdf mac * * *
2_color_indexed.pdf mac * * *

# TODO(pdfium:1867): Remove after associated bug is fixed
2_color_tiling.pdf * * * skia

# TODO(pdfium:1860): Remove after associated bug is fixed
2_halftone.pdf * * * skia

3_4_textbox.pdf * * * *

3_interpolate_image.pdf mac * * *
3bigpreview.pdf mac * * *

4_35.pdf mac * * *

# TODO(pdfium:1859): Remove after associated bug is fixed
4_36.pdf * * * skia

4_39.pdf mac * * *
5.1.pdf mac * * *
5.2.pdf * * * *
5.5_simple_font.pdf mac * * *
8.2_name_dest_f_dest.pdf mac * * *
8.2_outline.pdf mac * * *
8.3_presentation.pdf mac * * *
FRC_10_8.2.2__T8.3_original_file.pdf * * * *

# TODO(pdfium:1858): Remove after associated bug is fixed
FRC_10_8.2.4_View_C.pdf * * * skia

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 * * * *

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_AuthEvent_EFOpen.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_CF_EFF_StdCF_Strf_Stmf_Identity.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_CF_Strf_stmf_StdCF.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_CFM_AESV2__EncryptMetadata_F.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_EncryptMetadata_None.pdf * * * skia

FRC_3.5_P__3616_Password_1.pdf * * * *

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_V_4_CFM_V2_.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_V_5_CFM_AESV3.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_v_1_length_40_Filter_standard.pdf * * * skia

# TODO(pdfium:1856): Remove after associated bug is fixed
FRC_3.5_v_2_length_128_AuthEvent_DocOpen_.pdf * * * skia

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 * * *
action_hide_show_form.pdf mac * * *
action_on_focus.pdf mac * * *
action_open_a_file.pdf mac * * *
action_pdf_save_close.pdf mac * * *
action_reset.pdf mac * * *
action_run_javascript.pdf mac * * *
action_submit_a_form.pdf mac * * *
all_trigger_alert.pdf * * * *
all_trigger_mailmsg.pdf * * * *
all_trigger_print.pdf * * * *
all_trigger_run_js_lunchurl.pdf mac * * *
all_trigger_run_js_maildoc.pdf mac * * *

annotation_highlight_author_content.pdf mac * * *
annotation_highlight_long_content.pdf mac * * *
annotation_highlight_no_author.pdf mac * * *

# TODO(pdfium:1871): Remove after associated bug is fixed
annotation_square_dash.pdf * * * skia,skiapaths

app_launchurl.pdf mac * * *
appstoredescription3.1_en_updated.pdf mac * * *

bookmark.pdf * * * *
bookmarkgetcolor.pdf mac * * *
bug_0_length_line.pdf mac * * *

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

bug_0_width_line.pdf mac * * *
bug_440132.pdf mac * * *

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

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

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

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

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

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

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

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

javascriptaction.pdf * * * *
jetman_std.pdf mac * * *
jetman_std_fixed.pdf mac * * *
js_calculate.pdf * * * *
list_box.pdf * * * *

negative.pdf mac * * *
new_certify1.pdf mac * * *

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

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

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

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

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

whats_new_in_v3.0.pdf mac * * *
widget_javascript.pdf mac * * *

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

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

# TODO(pdfium:1804): Remove after associated bug is fixed
# TODO(pdfium:1845): Remove after associated bug is fixed
xfermodes3.pdf * * * skia,skiapaths

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

# 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 * * * *
TimeField.pdf win,linux * * *
Test_CheckBox.pdf * * * *
Test_DateField_locale_zh_HK.pdf mac,win * * *

#
# 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:1747): Remove after associated bug is fixed
bug_1258634.in * * * skia

# 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

# 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:1846): Remove after associated bug is fixed
bug_1846.in * * * agg

# 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,skiapaths

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

# TODO(pdfium:1310): Remove after associated bug is fixed
radial_shading_point_at_border.in * * * skia,skiapaths

# 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:1902): Remove after associated bug is fixed
xfa_bmp_image.in * * * skia,skiapaths
# 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 * * *
