Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion backends/arm/operators/op_tosa_conv3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Conv3dVisitor(Conv2dVisitor):
target = "tosa.CONV3D.default"

def _get_tosa_op(self):
import serializer.tosa_serializer as ts # type: ignore
import tosa_serializer as ts

return ts.Op.CONV3D

Expand Down
142 changes: 136 additions & 6 deletions backends/arm/test/targets.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Comment on lines 17 to +22
Copy link

Copilot AI Apr 10, 2026

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.

Copilot uses AI. Check for mistakes.
"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", # needs executorch.backends.test.harness.stages (no BUCK target)
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This exclusion reason appears incorrect: executorch.backends.test.harness.stages is included in the public Buck target //executorch/backends/test/harness:tester (which is already a dependency of //executorch/backends/arm/test:arm_tester_lib). If quantizer/test_preserve_kwargs.py is being skipped for another reason (e.g., failures), please update the comment; otherwise it looks like it should be enabled to increase coverage.

Suggested change
# "quantizer/test_preserve_kwargs.py", # needs executorch.backends.test.harness.stages (no BUCK target)
"quantizer/test_preserve_kwargs.py",

Copilot uses AI. Check for mistakes.
# "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", # needs executorch.backends.test.harness.stages (no BUCK target)
"misc/test_mixed_fp_bf16_partition.py",
Comment on lines +166 to +169
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above for this exclusion: executorch.backends.test.harness.stages has a Buck target (//executorch/backends/test/harness:tester) and is already pulled in transitively via //executorch/backends/arm/test:arm_tester. If this test is disabled due to failures/flake, please update the comment accordingly; otherwise consider enabling it to match the stated goal of expanding coverage.

Copilot uses AI. Check for mistakes.
"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 = {}
Expand Down
Loading