diff --git a/backends/arm/test/ops/test_slice.py b/backends/arm/test/ops/test_slice.py index 43214ab42ac..c3de789689e 100644 --- a/backends/arm/test/ops/test_slice.py +++ b/backends/arm/test/ops/test_slice.py @@ -76,13 +76,7 @@ def test_slice_tensor_tosa_INT_nhwc(test_data: torch.Tensor): pipeline.run() -x_fails = { - "ones_slice_3": "MLETORCH-1402: Compiler limitation when passing more than 255 char as argument to FVP.", - "ones_slice_4": "MLETORCH-1402: Compiler limitation when passing more than 255 char as argument to FVP.", -} - - -@common.parametrize("test_data", test_data_suite, x_fails) +@common.parametrize("test_data", test_data_suite) @common.XfailIfNoCorstone300 def test_slice_tensor_u55_INT(test_data: torch.Tensor): pipeline = EthosU55PipelineINT[input_t1]( @@ -94,7 +88,7 @@ def test_slice_tensor_u55_INT(test_data: torch.Tensor): pipeline.run() -@common.parametrize("test_data", test_data_suite, x_fails) +@common.parametrize("test_data", test_data_suite) @common.XfailIfNoCorstone320 def test_slice_tensor_u85_INT(test_data: torch.Tensor): pipeline = EthosU85PipelineINT[input_t1]( @@ -175,7 +169,7 @@ def test_slice_tensor_16a8w_tosa_INT(test_data: torch.Tensor): pipeline.run() -@common.parametrize("test_data", test_data_suite, x_fails) +@common.parametrize("test_data", test_data_suite) @common.XfailIfNoCorstone300 def test_slice_tensor_16a8w_u55_INT16(test_data: torch.Tensor): """Test slice operation with 16A8W quantization on U55 (16-bit activations, 8-bit weights)""" @@ -199,7 +193,7 @@ def test_slice_tensor_16a8w_u55_INT16(test_data: torch.Tensor): pipeline.run() -@common.parametrize("test_data", test_data_suite, x_fails) +@common.parametrize("test_data", test_data_suite) @common.XfailIfNoCorstone320 def test_slice_tensor_16a8w_u85_INT16(test_data: torch.Tensor): """Test slice operation with 16A8W quantization on U85 (16-bit activations, 8-bit weights)""" diff --git a/backends/arm/test/ops/test_split.py b/backends/arm/test/ops/test_split.py index 6c4d87e9de2..afe83b04466 100644 --- a/backends/arm/test/ops/test_split.py +++ b/backends/arm/test/ops/test_split.py @@ -139,17 +139,7 @@ def test_split_with_sizes_tosa_INT(test_data: input_t1): pipeline.run() -x_fails = { - "split_3d_2_sizes_dim": "MLETORCH-1403: Split operator is running out of memory when reading input file", - "split_4d_2_sizes_dim_neg": "MLETORCH-1403: Split operator is running out of memory when reading input file", -} - - -@common.parametrize( - "test_data", - (Split.test_data | Split.test_data_list), - x_fails, -) +@common.parametrize("test_data", (Split.test_data | Split.test_data_list)) @common.XfailIfNoCorstone300 def test_split_with_sizes_u55_INT(test_data: input_t1): pipeline = EthosU55PipelineINT[input_t1]( @@ -161,11 +151,7 @@ def test_split_with_sizes_u55_INT(test_data: input_t1): pipeline.run() -@common.parametrize( - "test_data", - (Split.test_data | Split.test_data_list), - x_fails, -) +@common.parametrize("test_data", (Split.test_data | Split.test_data_list)) @common.XfailIfNoCorstone320 def test_split_with_sizes_u85_INT(test_data: input_t1): pipeline = EthosU85PipelineINT[input_t1]( diff --git a/backends/arm/test/runner_utils.py b/backends/arm/test/runner_utils.py index 69d9f838034..0d4920d0ec3 100644 --- a/backends/arm/test/runner_utils.py +++ b/backends/arm/test/runner_utils.py @@ -384,7 +384,6 @@ def run_corstone( to figure out the shape and dtype of the buffer that was output from the FVP. """ - exported_program = executorch_program_manager.exported_program() intermediate_path = Path(intermediate_path) intermediate_path.mkdir(exist_ok=True) @@ -400,11 +399,18 @@ def run_corstone( input_paths = save_inputs_to_file(exported_program, inputs, intermediate_path) output_base_name = "out" - out_path = os.path.join(intermediate_path, output_base_name) - cmd_line = f"executor_runner -m {pte_path} -o {out_path}" + cmd_line = "executor_runner -m program.pte -o out" for input_path in input_paths: - cmd_line += f" -i {input_path}" + relative_path = os.path.relpath( + Path(input_path).resolve(), start=intermediate_path + ) + cmd_line += f" -i {relative_path}" + + if len(cmd_line) > 256: + raise ValueError( + "The argument passed to the FVP should be less than 256 characters long, otherwise it gets truncated" + ) ethos_u_extra_args = "" if is_option_enabled("fast_fvp"): @@ -431,6 +437,8 @@ def run_corstone( "-C", "cpu0.semihosting-heap_limit=0", "-C", + f"cpu0.semihosting-cwd={intermediate_path}", + "-C", f"cpu0.semihosting-cmd_line='{cmd_line}'", "-a", str(elf_path), @@ -461,6 +469,8 @@ def run_corstone( "-C", "mps4_board.subsystem.cpu0.semihosting-heap_limit=0", "-C", + f"mps4_board.subsystem.cpu0.semihosting-cwd={intermediate_path}", + "-C", f"mps4_board.subsystem.ethosu.extra_args='{ethos_u_extra_args}'", "-C", f"mps4_board.subsystem.cpu0.semihosting-cmd_line='{cmd_line}'",