-
Notifications
You must be signed in to change notification settings - Fork 934
Expand fbcode buck test coverage for arm backend (58→162 test targets) (#18817) #18817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,46 +16,176 @@ def define_arm_tests(): | |
|
|
||
| # Operators | ||
| test_files += [ | ||
| "ops/test_abs.py", | ||
| "ops/test_add.py", | ||
| "ops/test_addmm.py", | ||
| "ops/test_amax.py", | ||
| "ops/test_amin.py", | ||
| "ops/test_avg_pool2d.py", | ||
| "ops/test_batch_norm.py", | ||
| "ops/test_bitwise.py", | ||
| "ops/test_bmm.py", | ||
| "ops/test_cat.py", | ||
| "ops/test_ceil.py", | ||
| "ops/test_clamp.py", | ||
| "ops/test_clone.py", | ||
| "ops/test_conv1d.py", | ||
| "ops/test_conv2d.py", | ||
| "ops/test_conv3d.py", | ||
| "ops/test_cos.py", | ||
| "ops/test_depthwise_conv.py", | ||
| # "ops/test_div.py", # 15 failures: NoneType input in bundled_program serialization (pre-existing bug) | ||
| "ops/test_elu.py", | ||
| "ops/test_embedding.py", | ||
| "ops/test_eq.py", | ||
| "ops/test_erf.py", | ||
| "ops/test_exp.py", | ||
| "ops/test_expand.py", | ||
| "ops/test_floor.py", | ||
| "ops/test_full.py", | ||
| "ops/test_ge.py", | ||
| "ops/test_group_norm.py", | ||
| "ops/test_gt.py", | ||
| "ops/test_hardswish.py", | ||
| "ops/test_hardtanh.py", | ||
| # "ops/test_layer_norm.py", # 1 failure: 16a8w u55 quantization issue | ||
| "ops/test_le.py", | ||
| "ops/test_leaky_relu.py", | ||
| "ops/test_linear.py", | ||
| "ops/test_log10.py", | ||
| "ops/test_log.py", | ||
| "ops/test_logical.py", | ||
| "ops/test_lt.py", | ||
| # matmul: Vela compilation fails with 'Non-passthrough operation' | ||
| # for int16 matmul operations, xfail interacts incorrectly with | ||
| # XfailIfNoCorstone. | ||
| # "ops/test_matmul.py", | ||
| "ops/test_max_pool1d.py", | ||
| "ops/test_max_pool.py", | ||
| "ops/test_mean_dim.py", | ||
| "ops/test_maximum.py", | ||
| "ops/test_minimum.py", | ||
| "ops/test_mm.py", | ||
| "ops/test_mul.py", | ||
| "ops/test_ne.py", | ||
| "ops/test_neg.py", | ||
| "ops/test_ones.py", | ||
| "ops/test_permute.py", | ||
| "ops/test_pixel_shuffling.py", | ||
| "ops/test_pow.py", | ||
| "ops/test_reciprocal.py", | ||
| "ops/test_relu.py", | ||
| "ops/test_remainder.py", | ||
| "ops/test_repeat.py", | ||
| "ops/test_round.py", | ||
| # rshift: U55 FVP output dtype mismatch for rshift operations, | ||
| # xfail interacts incorrectly with XfailIfNoCorstone. | ||
| # "ops/test_rshift.py", | ||
| "ops/test_rsqrt.py", | ||
| "ops/test_slice.py", | ||
| "ops/test_rsub.py", | ||
| "ops/test_scalar_tensor.py", | ||
| "ops/test_scalars.py", | ||
| "ops/test_sdpa.py", | ||
| "ops/test_select.py", | ||
| "ops/test_select_scatter.py", | ||
| "ops/test_sigmoid.py", | ||
| "ops/test_sigmoid_32bit.py", | ||
| "ops/test_sign.py", | ||
| # silu: U55 numerical mismatch for inplace SiLU, xfail interacts | ||
| # incorrectly with XfailIfNoCorstone. | ||
| # "ops/test_silu.py", | ||
| "ops/test_sin.py", | ||
| "ops/test_sinh.py", | ||
| "ops/test_slice.py", | ||
| # slice_scatter: U55/U85 FVP failures for int8 and end_none cases, | ||
| # xfail interacts incorrectly with XfailIfNoCorstone. | ||
| # "ops/test_slice_scatter.py", | ||
| "ops/test_softmax.py", | ||
| "ops/test_split.py", | ||
| "ops/test_sqrt.py", | ||
| "ops/test_squeeze.py", | ||
| "ops/test_stack.py", | ||
| "ops/test_sub.py", | ||
| # sum: xfail markers interact incorrectly with XfailIfNoCorstone | ||
| # when test inputs contain None (NoneType not supported in | ||
| # bundled_program serialization). | ||
| # "ops/test_sum.py", | ||
| "ops/test_t_copy.py", | ||
| "ops/test_tan.py", | ||
| "ops/test_tanh.py", | ||
| "ops/test_view.py", | ||
| "ops/test_cos.py", | ||
| "ops/test_to_copy.py", | ||
| # transpose_conv2d: xfail markers for per-channel quantization | ||
| # interact incorrectly with XfailIfNoCorstone when tests fail | ||
| # during quantization (before reaching FVP execution). | ||
| # "ops/test_transpose_conv2d.py", | ||
| "ops/test_transpose_copy.py", | ||
| "ops/test_tril.py", | ||
| # "ops/test_unary_combos.py", # 1 failure: NegAdd u55_INT | ||
| "ops/test_unbind.py", | ||
| "ops/test_unflatten.py", | ||
| "ops/test_unfold_copy.py", | ||
| "ops/test_unsqueeze.py", | ||
| "ops/test_upsample_bilinear2d.py", | ||
| "ops/test_upsample_nearest2d.py", | ||
| "ops/test_var.py", | ||
| "ops/test_view.py", | ||
| "ops/test_where.py", | ||
| "ops/test_while.py", | ||
| "ops/test_zeros.py", | ||
| ] | ||
|
|
||
| # Quantization | ||
| test_files += [ | ||
| "quantizer/test_conv_relu_fusing.py", | ||
| "quantizer/test_generic_annotater.py", | ||
| "quantizer/test_partial_quantization.py", | ||
| "quantizer/test_preserve_kwargs.py", | ||
| # "quantizer/test_selective_quantization.py", # needs torchvision (not in deps) | ||
| "quantizer/test_set_module_name.py", | ||
| "quantizer/test_tosa_quantizer_validate.py", | ||
| ] | ||
|
|
||
| # Misc tests | ||
| test_files += [ | ||
| "misc/test_compile_spec.py", | ||
| "misc/test_pass_pipeline_config.py", | ||
| "misc/test_tosa_spec.py", | ||
| "misc/test_bn_relu_folding_qat.py", | ||
| "misc/test_call_operator_submodule.py", | ||
| "misc/test_compile_spec.py", | ||
| "misc/test_const_shape.py", | ||
| "misc/test_conv_relu_residual_add.py", | ||
| "misc/test_count_tosa_ops.py", | ||
| "misc/test_custom_partition.py", | ||
| "misc/test_debug_feats.py", | ||
| "misc/test_debug_hook.py", | ||
| "misc/test_post_quant_device_switch.py", | ||
| # "misc/test_dim_order.py", (TODO - T238390249) | ||
| ] | ||
|
|
||
| # Deprecation tests | ||
| test_files += [ | ||
| "misc/test_dw_convs_with_shared_weights.py", | ||
| "misc/test_extract_io_params_tosa.py", | ||
| # "misc/test_int64.py", # 5 failures: int64 overflow/chain handling issues | ||
| "misc/test_lifted_tensor.py", | ||
| "misc/test_mixed_fp_bf16_partition.py", | ||
|
Comment on lines
+166
to
+169
|
||
| "misc/test_mixed_type_lowering.py", | ||
| # "misc/test_model_evaluator.py", # needs executorch.backends.arm.util (no BUCK target) | ||
| "misc/test_multiple_delegates.py", | ||
| "misc/test_multiple_outputs.py", | ||
| "misc/test_non_persistent_buffers.py", | ||
| "deprecation/test_arm_compile_spec_deprecation.py", | ||
| "misc/test_partition_decomposed_quantized_ops.py", | ||
| "misc/test_pass_pipeline_config.py", | ||
| "misc/test_pass_required_order.py", | ||
| "misc/test_qat_training_loop.py", | ||
| "misc/test_quant_custom_meta.py", | ||
| # "misc/test_rescale_range.py", # 3 failures: zero-point and rescale range validation | ||
| # "misc/test_runner_utils.py", # name collides with runner_utils library in BUCK | ||
| "misc/test_save_exported_model.py", | ||
| # "misc/test_shared_qspecs.py", # needs executorch.backends.cortex_m.test.tester (no BUCK target) | ||
| "misc/test_tosa_dialect_conv2d.py", | ||
| "misc/test_tosa_dialect_dw_conv2d.py", | ||
| "misc/test_tosa_dialect_shape_ops.py", | ||
| "misc/test_tosa_spec.py", | ||
| ] | ||
|
|
||
| TESTS = {} | ||
|
|
@@ -95,6 +225,7 @@ def define_arm_tests(): | |
| "//executorch/backends/arm/tosa:partitioner", | ||
| "//executorch/backends/arm:vgf", | ||
| "//executorch/backends/test:graph_builder", | ||
| "//executorch/backends/test/harness:tester", | ||
| "//executorch/exir:lib", | ||
| "fbsource//third-party/pypi/pytest:pytest", | ||
| "fbsource//third-party/pypi/parameterized:parameterized", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description/title claims this adds “all available” tests from ops/, quantizer/, and misc/, but this target list still omits many existing tests in those directories (e.g., ops/test_acos.py, ops/test_any.py, misc/test_high_rank_permute_view_invariants.py, etc.). Either update the description to reflect that this is a curated subset, or switch to native.glob(["ops/test_.py"], ...) / native.glob(["misc/test_.py"], ...) with an explicit exclusion list so coverage doesn’t silently drift as new tests are added.