# Copyright 2016 The PDFium Authors. All rights reserved.
# 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
#
# 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.

#
# Pixel tests
#
font_size.in mac * *

#
# Corpus tests
#
050_extra_m.pdf * * xfa
050_extra_m.pdf mac,win * noxfa
12.pdf mac * *
1_10_watermark.pdf * * *
1_1_textbox.pdf * * *
1_2_typewriter.pdf * * *
1_3_callout.pdf * * *
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 * *
3_4_textbox.pdf * * *
3_interpolate_image.pdf mac * *
3bigpreview.pdf * * xfa
3bigpreview.pdf mac,win * noxfa
4_35.pdf mac * *
4_39.pdf mac * *
5.1.pdf mac * *
5.2.pdf * * *
5.5_simple_font.pdf mac,win * *
8.2_name_dest_f_dest.pdf mac * *
8.2_outline.pdf mac * *
8.3_presentation.pdf mac * *
FRC_10_8.2.2_Prev_remove_all.pdf mac * *
FRC_10_8.2.2__T8.3_original_file.pdf * * *
FRC_10_8.2.4_View_C.pdf mac * *
FRC_10_8.2.4__remove_ModDate_value.pdf mac * *
FRC_11_8.2.2_Prev_remove_obj.pdf mac * *
FRC_11_8.2.2__T8.3_first_last_exchange.pdf * * *
FRC_11_8.2.4_View_edit.pdf mac * *
FRC_11_8.2.4__remove_ModDate_all.pdf mac * *
FRC_12_8.2.2__Next_remove_value.pdf mac * *
FRC_12_8.2.2__T8.3_first_outline_obj_ID.pdf * * *
FRC_12_8.2.4_View_remove_all.pdf mac * *
FRC_12_8.2.4__remove_ModDate_obj_.pdf mac * *
FRC_13_8.2.2__Next_remove_all.pdf mac * *
FRC_13_8.2.2__T8.3_Count_edit300.pdf * * *
FRC_13_8.2.4_View_remove_value.pdf mac * *
FRC_13_8.2.4_remove_Size_value.pdf mac * *
FRC_14_8.2.2__Next_remove_obj.pdf mac * *
FRC_14_8.2.2__T8.3_Count_edit0.pdf * * *
FRC_14_8.2.4_Sort_remove_all.pdf mac * *
FRC_14_8.2.4_remove_Size_all.pdf mac * *
FRC_15_8.2.2__Next_exchange.pdf mac * *
FRC_15_8.2.2__T8.3_Count_edit1.pdf * * *
FRC_15_8.2.4_Sort_remove_value.pdf mac * *
FRC_15_8.2.4_remove_Size_obj.pdf mac * *
FRC_16_8.2.2__Next_add.pdf mac * *
FRC_16_8.2.2__T8.3_Count_edit_1.pdf * * *
FRC_16_8.2.4__remove_CompressedSize__value.pdf mac * *
FRC_17_8.2.2__T8.4_First_remove_value.pdf mac * *
FRC_17_8.2.4__remove_CompressedSize__all.pdf mac * *
FRC_18_8.2.2__T8.4_First_remove_all.pdf mac * *
FRC_18_8.2.4__remove_CompressedSize__obj.pdf mac * *
FRC_19_8.2.2__T8.4_First_remove_obj.pdf mac * *
FRC_19_8.2.4__remove_CreationDate_value.pdf mac * *
FRC_1_8.2.2__T8.3_First_empty.pdf * * *
FRC_1_8.2.2__Title_edit.pdf mac * *
FRC_1_8.2.4_Type_8.6_.pdf mac * *
FRC_1_8.2.4__original.pdf mac * *
FRC_20_8.2.2__T8.4_First_remove_value2.pdf mac * *
FRC_20_8.2.4__remove_CreationDate_all.pdf mac * *
FRC_21_8.2.2__T8.4_First_remove_all2.pdf mac * *
FRC_21_8.2.4__remove_CreationDate_obj.pdf mac * *
FRC_22_8.2.2__T8.4_First_remove_obj2.pdf mac * *
FRC_22_8.2.4__remove_Order_value.pdf mac * *
FRC_23_8.2.2__T8.4_Last_remove_value.pdf mac * *
FRC_23_8.2.4__remove_Order_all.pdf mac * *
FRC_24_8.2.2__T8.4_Last_remove_all.pdf mac * *
FRC_24_8.2.4__remove_Order_obj.pdf mac * *
FRC_25_8.2.2__T8.4_Last_remove_obj.pdf mac * *
FRC_26_8.2.2__T8.4_Last_remove_value2.pdf mac * *
FRC_27_8.2.2__T8.4_Last_remove_all2.pdf mac * *
FRC_28_8.2.2__T8.4_Last_remove_obj2.pdf mac * *
FRC_29_8.2.2__T8.4_First_Last_exchange.pdf mac * *
FRC_2_8.2.2__T8.3_Last_empty.pdf * * *
FRC_2_8.2.2__Title_remove_value.pdf mac * *
FRC_2_8.2.4_Type_8.6__remove_value.pdf mac * *
FRC_2_8.2.4__add_type_.pdf mac * *
FRC_3.5_AuthEvent_EFOpen.pdf mac * *
FRC_3.5_CFM_AESV2__EncryptMetadata_F.pdf mac * *
FRC_3.5_CF_EFF_StdCF_Strf_Stmf_Identity.pdf mac * *
FRC_3.5_CF_Strf_stmf_StdCF.pdf mac * *
FRC_3.5_EncryptMetadata_None.pdf mac * *
FRC_3.5_P_4_Password_1.pdf mac * *
FRC_3.5_P__1852_Password_1.pdf mac * *
FRC_3.5_P__2584_Password_1.pdf mac * *
FRC_3.5_P__2616_Password_1.pdf mac * *
FRC_3.5_P__2880_Password_1.pdf mac * *
FRC_3.5_P__3376_Password_1.pdf mac * *
FRC_3.5_P__3392_Password_1.pdf mac * *
FRC_3.5_P__3608_Password_1.pdf mac * *
FRC_3.5_P__3616_Password_1.pdf mac,win * *
FRC_3.5_P__3648_Password_1.pdf mac * *
FRC_3.5_P__3900_Password_1.pdf mac * *
FRC_3.5_V_4_CFM_V2_.pdf mac * *
FRC_3.5_V_5_CFM_AESV3.pdf mac * *
FRC_3.5_v_1_length_40_Filter_standard.pdf mac * *
FRC_3.5_v_2_length_128_AuthEvent_DocOpen_.pdf mac * *
FRC_31_8.2.2_add_dest_entry.pdf mac * *
FRC_32_8.2.2_A_Support_action.pdf mac * *
FRC_33_8.2.2_A_empty.pdf mac * *
FRC_34_8.2.2_A_remove.pdf mac * *
FRC_35_8.2.2_A_remove_A_item.pdf mac * *
FRC_36_8.2.2_Dest.pdf mac * *
FRC_37_8.2.2_Dest_empty.pdf mac * *
FRC_38_8.2.2_Dest_remove.pdf mac * *
FRC_39_8.2.2_C_edit.pdf mac * *
FRC_3_8.2.2_Type_empty.pdf * * *
FRC_3_8.2.2__Title_remove_all.pdf mac * *
FRC_3_8.2.4_Type_8.6__edit_.pdf mac * *
FRC_3_8.2.4__add_type_value.pdf mac * *
FRC_4.5.3_DeviceCMYK_k.pdf mac * *
FRC_4.5.3_DeviceGray_g.pdf mac * *
FRC_4.5.3_DeviceRGB_rg.pdf mac * *
FRC_4.5.4_CalGray_gamma.pdf mac * *
FRC_4.5.4_CalGray_whitepoint.pdf mac * *
FRC_4.5.4_CalRGB_gamma.pdf mac * *
FRC_4.5.4_CalRGB_matrix.pdf mac * *
FRC_4.5.4_CalRGB_whitepoint.pdf mac * *
FRC_4.5.4_ICCBased.pdf mac * *
FRC_4.5.4_Lab.pdf mac * *
FRC_4.5.4_RI_Absolute.pdf mac * *
FRC_4.5.4_RI_Perceptual.pdf mac * *
FRC_4.5.4_RI_Relative.pdf mac * *
FRC_4.5.4_RI_Saturation.pdf mac * *
FRC_4.5.4_Separation.pdf mac * *
FRC_4.5.5_DeviceN.pdf mac * *
FRC_4.5.5_Indexed.pdf mac * *
FRC_4.5.5_Pattern_tiling.pdf mac * *
FRC_40_8.2.2_C_empty1.pdf mac * *
FRC_41_8.2.2_C_empty2.pdf mac * *
FRC_42_8.2.2_C_empty3.pdf mac * *
FRC_43_8.2.2_C_empty.pdf mac * *
FRC_44_8.2.2_C_remove.pdf mac * *
FRC_45_8.2.2_F_edit_F_1_2_3.pdf mac * *
FRC_46_8.2.2_F_edit_F__1__2__3.pdf mac * *
FRC_47_8.2.2_F_edit_F_32__32.pdf mac * *
FRC_48_8.2.2_F_edit_F_100__100.pdf mac * *
FRC_49_8.2.2_F_empty.pdf mac * *
FRC_4_8.2.2_Parent_edit2.pdf mac * *
FRC_4_8.2.2__T8.3_Count_empty.pdf * * *
FRC_4_8.2.4_Schema_8.6__remove_all.pdf mac * *
FRC_4_8.2.4__remove_FileName_value.pdf mac * *
FRC_50_8.2.2_F_remove.pdf mac * *
FRC_51_8.2.2_T_8.4__Count_edit_count_100.pdf mac * *
FRC_52_8.2.2_T_8.4__Count_edit_count_0.pdf mac * *
FRC_53_8.2.2_T_8.4__Count_empty.pdf mac * *
FRC_54_8.2.2_T_8.4__Count_empty1.pdf mac * *
FRC_55_8.2.2_T_8.4__Count_remove.pdf mac * *
FRC_56_8.2.2_C_edit_C__1.pdf mac * *
FRC_57_8.2.2_C_edit_C_2.pdf mac * *
FRC_58_8.2.2_Count_edit_count__2.pdf mac * *
FRC_5_8.2.2_Parent_remove_value.pdf mac * *
FRC_5_8.2.2__T8.3_First_remove.pdf * * *
FRC_5_8.2.4_Schema_8.6__remove_value.pdf mac * *
FRC_5_8.2.4__remove_FileName_all.pdf mac * *
FRC_6_8.2.2_Parent_remove_all.pdf mac * *
FRC_6_8.2.2__T8.3_Last_remove.pdf * * *
FRC_6_8.2.4_Schema_8.6__remove_obj.pdf mac * *
FRC_6_8.2.4__remove_FileName_obj.pdf mac * *
FRC_7_8.2.2_Parent_remove_obj.pdf mac * *
FRC_7_8.2.2_Type_remove.pdf * * *
FRC_7_8.2.4_View_H.pdf mac * *
FRC_7_8.2.4__remove_Description_value.pdf mac * *
FRC_8.4.1_Annotations_AP_N_.pdf mac * *
FRC_8.4.1_Annotations_AP_N_R.D_.pdf mac * *
FRC_8.4.1_Annotations_AP_N_R_.pdf mac * *
FRC_8.4.1_Annotations_AS_Off_.pdf mac * *
FRC_8.4.1_Annotations_AS_Yes_.pdf mac * *
FRC_8.4.1_Annotations_Border.pdf mac * *
FRC_8.4.1_Annotations_C.pdf mac * *
FRC_8.4.1_Annotations_M.pdf * * *
FRC_8.4.1_Annotations_M_text_string_.pdf mac * *
FRC_8.4.1_Annotations_NM.pdf * * *
FRC_8.4.1_Annotations_P.pdf mac * *
FRC_8.4.1_Annotations_Rect.pdf mac * *
FRC_8.4.1_Annotations_Type.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_Hidden.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_Invisible.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_Locked.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_LockedContents.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_NoRotate.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_NoView.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_NoZoom.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_Print.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_ReadOnly.pdf mac * *
FRC_8.4.2_Annotation_Flags_F_ToggleNoView.pdf mac * *
FRC_8.4.3_Border_Stypes_D_different_values.pdf mac * *
FRC_8.4.3_Border_Stypes_D_remove.pdf mac * *
FRC_8.4.3_Border_Stypes_I_different_values.pdf mac * *
FRC_8.4.3_Border_Stypes_I_remove.pdf mac * *
FRC_8.4.3_Border_Stypes_S_different_values_BE_.pdf mac * *
FRC_8.4.3_Border_Stypes_S_different_values_BS_.pdf mac * *
FRC_8.4.3_Border_Stypes_S_not_exist_BS_.pdf mac * *
FRC_8.4.3_Border_Stypes_S_remove_BE_.pdf mac * *
FRC_8.4.3_Border_Stypes_S_remove_BS_.pdf mac * *
FRC_8.4.3_Border_Stypes_Type_add.pdf mac * *
FRC_8.4.3_Border_Stypes_Type_not_exist_default_.pdf mac * *
FRC_8.4.3_Border_Stypes_W_different_values.pdf mac * *
FRC_8.4.3_Border_Stypes_W_remove.pdf mac * *
FRC_8.5_Bl_Hide.pdf mac * *
FRC_8.5_Catalog_OpenAction.pdf mac * *
FRC_8.5_Catalog_WC.pdf mac * *
FRC_8.5_DP.pdf mac * *
FRC_8.5_DS.pdf mac * *
FRC_8.5_E_GoTo_D.pdf mac * *
FRC_8.5_Fo_URI_Base.pdf mac * *
FRC_8.5_Link_URL.pdf mac * *
FRC_8.5_Outline_A.pdf mac * *
FRC_8.5_Page_C_SubmitForm.pdf * * *
FRC_8.5_Page_O_URI.pdf mac * *
FRC_8.5_Page_PI_ResetForm_Phantom.pdf * * *
FRC_8.5_Page_PV_Named_Phantom.pdf mac * *
FRC_8.5_Screen_Fo_JavaScript.pdf mac * *
FRC_8.5_Screen_Img_D_Launch.pdf mac * *
FRC_8.5_Screen_Rendition.pdf mac * *
FRC_8.5_URI_IsMap.pdf mac * *
FRC_8.5_U_GoToR_NewWindow.pdf mac * *
FRC_8.5_U_GoToR_NewWindow_2.pdf mac * *
FRC_8.5_WP.pdf mac * *
FRC_8.5_WS.pdf mac * *
FRC_8.5_Widget_C.pdf mac * *
FRC_8.5_Widget_F.pdf mac * *
FRC_8.5_Widget_F.pdf * nov8 *
FRC_8.5_Widget_K.pdf mac * *
FRC_8.5_Widget_V.pdf mac * *
FRC_8.5_X_GoToR_D.pdf mac * *
FRC_8_8.2.2_Parent_edit.pdf mac * *
FRC_8_8.2.2__T8.3_Count_remove.pdf * * *
FRC_8_8.2.4_View_D.pdf mac * *
FRC_8_8.2.4__remove__Description_all.pdf mac * *
FRC_9_8.2.2_Prev_remove_value.pdf mac * *
FRC_9_8.2.2__T8.3_remove_first_item.pdf * * *
FRC_9_8.2.4_View_T.pdf mac * *
FRC_9_8.2.4__remove__Description_obj.pdf mac * *
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_browsefordoc.pdf * * *
all_trigger_mailmsg.pdf * * *
all_trigger_newdoc.pdf * * *
all_trigger_print.pdf * * *
all_trigger_run_js_lunchurl.pdf mac * *
all_trigger_run_js_maildoc.pdf mac * *
app_launchurl.pdf mac * *
appstoredescription3.1_en_updated.pdf mac * *
bookmark.pdf * * *
bookmarkgetcolor.pdf mac * *
bug_0_length_line.pdf mac * *
bug_0_width_line.pdf mac * *
bug_434.pdf * * noxfa
bug_434.pdf win * xfa
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,win * *
example_003.pdf mac,win * *
example_004.pdf mac * *
example_005.pdf mac * *
example_006.pdf mac,win * *
example_007.pdf mac * *
example_008.pdf mac * *
example_009.pdf mac * *
example_010.pdf mac,win * *
example_011.pdf mac * *
example_012.pdf mac * *
example_013.pdf mac * *
example_014.pdf mac * *
example_015.pdf mac,win * *
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,win * *
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 * * xfa
example_033.pdf mac,win * noxfa
example_034.pdf mac * *
example_035.pdf mac,win * *
example_036.pdf mac,win * *
example_037.pdf mac * *
example_038.pdf mac,win * *
example_039.pdf mac * *
example_040.pdf mac * *
example_041.pdf mac,win * *
example_042.pdf mac * *
example_043.pdf mac * *
example_044.pdf mac * *
example_045.pdf mac,win * *
example_046.pdf mac,win * *
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,win * *
example_054.pdf mac * *
example_055.pdf mac,win * *
example_056.pdf mac * *
example_057.pdf mac * *
example_058.pdf mac * *
example_059.pdf mac,win * *
example_060.pdf mac * *
example_061.pdf mac,win * *
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 * *
group_xobject.pdf mac * *
javascriptaction.pdf * * *
jetman_std.pdf mac * *
js_calculate.pdf * * *
list_box.pdf * * *
negative.pdf mac * *
new_certify1.pdf mac * *
new_signature1.pdf mac * *
new_signature2.pdf mac * *
new_stamp4.pdf mac * *
new_stamp5.pdf mac * *
new_textmarkup1.pdf mac * *
new_textmarkup2.pdf mac * *
new_textmarkup4.pdf mac * *
new_textmarkup5.pdf mac * *
new_textmarkup6.pdf mac * *
new_textmarkup7.pdf mac * *
new_textmarkup8.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 * * *
test_m.pdf * * xfa
test_m.pdf mac,win * noxfa
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 * *
zh_file1.pdf mac * *
zh_function_list.pdf mac * *
zh_shared_document.pdf mac * *

#
# xfa_specific
#
Choose.pdf * * *
data_binding.pdf * * *
Date_FormCale.pdf * * *
Sum.pdf * * *
TimeField.pdf * * *
Test_CheckBox.pdf * * *
Test_DateField_locale_zh_HK.pdf * * *

