SPIRV-Tools/test/fuzz
Nathan Gauër 85a4482131
NFC: makes the FeatureManager immutable for users (#5329)
* NFC: makes the FeatureManager immutable for users

The FeatureManager contains some internal state, like
a set of capabilities and extensions. Those are derived
from the module.

Before this commit, the FeatureManager exposed Remove* functions
which could unsync the reported extensions/capabilities from
the truth: the module.

The only valid usecase to remove items directly from the FeatureManager
is by the context itself, when an instruction is killed:
instead of running the whole an analysis, we remove the single outdated
item.

The was 2 users who mutated its state:
 - one to invalidate the manager. Moved to call a reset function.
 - one who removed an extension from the feature manager after removing
   it from the module. This logic has been moved to the context, who
   now handles the extension removal itself.

Signed-off-by: Nathan Gauër <brioche@google.com>

* clang-format

* add RemoveCapability since the fuzztests are using it

* add tests

---------

Signed-off-by: Nathan Gauër <brioche@google.com>
2023-07-17 11:15:08 -04:00
..
fact_manager Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
available_instructions_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
call_graph_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
CMakeLists.txt spirv-fuzz: TransformationWrapVectorSynonym that rewrites scalar operations using vectors (#4376) 2021-07-20 11:01:20 +01:00
comparator_deep_blocks_first_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
data_synonym_transformation_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
equivalence_relation_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
fuzz_test_util.cpp Remove reference to protobuf internals from fuzzers (#4701) 2022-02-10 10:41:24 -05:00
fuzz_test_util.h spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
fuzzer_pass_add_opphi_synonyms_test.cpp spirv-fuzz: Allow inapplicable transformations to be ignored (#4407) 2021-07-28 22:59:37 +01:00
fuzzer_pass_construct_composites_test.cpp spirv-fuzz: Allow inapplicable transformations to be ignored (#4407) 2021-07-28 22:59:37 +01:00
fuzzer_pass_donate_modules_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
fuzzer_pass_outline_functions_test.cpp spirv-fuzz: Allow inapplicable transformations to be ignored (#4407) 2021-07-28 22:59:37 +01:00
fuzzer_pass_test.cpp spirv-fuzz: Allow inapplicable transformations to be ignored (#4407) 2021-07-28 22:59:37 +01:00
fuzzer_replayer_test.cpp spirv-fuzz: Add minimal SPIR-V example to test shaders (#4415) 2021-07-29 17:09:14 +01:00
fuzzer_shrinker_test.cpp spirv-fuzz: Allow inapplicable transformations to be ignored (#4407) 2021-07-28 22:59:37 +01:00
fuzzerutil_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
instruction_descriptor_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
replayer_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
shrinker_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_access_chain_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_bit_instruction_synonym_test.cpp spirv-fuzz: Improve TransformationAddBitInstructionSynonym to check integer signedness (#4312) 2021-06-09 19:56:56 +01:00
transformation_add_constant_boolean_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_constant_composite_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_constant_null_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_constant_scalar_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_copy_memory_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_dead_block_test.cpp spirv-val: Conditional Branch without an exit is invalid in loop header (#5069) 2023-02-06 10:31:47 -05:00
transformation_add_dead_break_test.cpp spirv-val: Conditional Branch without an exit is invalid in loop header (#5069) 2023-02-06 10:31:47 -05:00
transformation_add_dead_continue_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_early_terminator_wrapper_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_function_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_global_undef_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_global_variable_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_image_sample_unused_components_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_local_variable_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_loop_preheader_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_loop_to_create_int_constant_synonym_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_no_contraction_decoration_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_opphi_synonym_test.cpp NFC: makes the FeatureManager immutable for users (#5329) 2023-07-17 11:15:08 -04:00
transformation_add_parameter_test.cpp Fix various source comment (doxygen) typos (#4680) 2022-01-26 15:13:08 -05:00
transformation_add_relaxed_decoration_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_synonym_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_array_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_boolean_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_float_test.cpp NFC: makes the FeatureManager immutable for users (#5329) 2023-07-17 11:15:08 -04:00
transformation_add_type_function_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_add_type_int_test.cpp NFC: makes the FeatureManager immutable for users (#5329) 2023-07-17 11:15:08 -04:00
transformation_add_type_matrix_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_pointer_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_struct_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_add_type_vector_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_adjust_branch_weights_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_composite_construct_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_composite_extract_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_composite_insert_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_compute_data_synonym_fact_closure_test.cpp spirv-fuzz: Fix to TransformationDuplicateRegionWithSelection (#3941) 2020-10-20 18:59:53 +01:00
transformation_duplicate_region_with_selection_test.cpp spirv-fuzz: Fix OpPhi handling in DuplicateRegionWithSelection (#4065) 2020-12-17 11:45:52 +00:00
transformation_equation_instruction_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_expand_vector_reduction_test.cpp spirv-fuzz: Add expand vector reduction transformation (#3869) 2020-10-23 14:59:08 +01:00
transformation_flatten_conditional_branch_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_function_call_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_inline_function_test.cpp spirv-fuzz: Take care of OpPhi instructions when inlining (#3939) 2020-10-19 09:41:01 +01:00
transformation_invert_comparison_operator_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_load_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_make_vector_operation_dynamic_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_merge_blocks_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_merge_function_returns_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_move_block_down_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_move_instruction_down_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_mutate_pointer_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_outline_function_test.cpp spirv-fuzz: Fix OutlineFunction in presence of unreachable blocks (#4308) 2021-06-01 11:44:21 +01:00
transformation_permute_function_parameters_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_permute_phi_operands_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_propagate_instruction_down_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_propagate_instruction_up_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_push_id_through_variable_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_record_synonymous_constants_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_replace_add_sub_mul_with_carrying_extended_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_replace_boolean_constant_with_constant_binary_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_branch_from_dead_block_with_exit_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_constant_with_uniform_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_copy_memory_with_load_store_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_copy_object_with_store_load_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_id_with_synonym_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_irrelevant_id_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_linear_algebra_instruction_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_load_store_with_copy_memory_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_replace_opphi_id_from_dead_predecessor_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_replace_opselect_with_conditional_branch_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_replace_parameter_with_global_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_replace_params_with_struct_test.cpp spirv-fuzz: Avoid the type manager when looking for struct types (#3963) 2020-10-21 18:28:05 +01:00
transformation_set_function_control_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_set_loop_control_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_set_memory_operands_mask_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_set_selection_control_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_split_block_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_store_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_swap_commutable_operands_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_swap_conditional_branch_operands_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_swap_function_variables_test.cpp spirv-fuzz: Enhancing permute function variables and its testing (#4295) 2021-05-26 00:41:31 +01:00
transformation_swap_two_functions_test.cpp spirv-fuzz: Check updated analyses in transformation tests (#4266) 2021-07-05 22:09:43 +01:00
transformation_toggle_access_chain_instruction_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_vector_shuffle_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_wrap_early_terminator_in_function_test.cpp Switch SPIRV-Tools to use spirv.hpp11 internally (#4981) 2022-11-04 17:27:10 -04:00
transformation_wrap_region_in_selection_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00
transformation_wrap_vector_synonym_test.cpp spirv-fuzz: Account for differing signedness in WrapVectorSynonym (#4414) 2021-09-14 21:09:39 +00:00
uniform_buffer_element_descriptor_test.cpp spirv-fuzz: Fix to TransformationInlineFunction (#3913) 2020-10-16 22:58:09 +01:00