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