From c870d1ef9d1299a71a35ef0d7d68e5c09bc77efb Mon Sep 17 00:00:00 2001 From: Jeremy Johnson Date: Mon, 8 Apr 2024 16:17:47 +0100 Subject: Generate tests with random combination of const/inputs Override the default input/consts used for each op with biased random combos. Signed-off-by: Jeremy Johnson Change-Id: I7a5eb2b01a47248bc0db5a2f930ad2ac52cc0a67 --- verif/generator/tosa_arg_gen.py | 14 ++++++++++++-- verif/generator/tosa_verif_build_tests.py | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/verif/generator/tosa_arg_gen.py b/verif/generator/tosa_arg_gen.py index f9499b5..9b20053 100644 --- a/verif/generator/tosa_arg_gen.py +++ b/verif/generator/tosa_arg_gen.py @@ -796,7 +796,17 @@ class TosaTensorValuesGen: tens_meta["input_pos"] = idx tens_meta["op"] = gtu.getOpNameFromOpListName(opName).upper() - if idx < pCount: + if testGen.args.random_const_inputs: + # Choose type of tensor biased by defaults + percentage = rng.randInt(0, 100) + variable = (idx < pCount and percentage < 70) or ( + idx >= pCount and percentage >= 70 + ) + else: + # Use default set up of constants versus inputs for the op + variable = idx < pCount + + if variable: tens_meta["input_type"] = "VARIABLE" else: tens_meta["input_type"] = "CONSTANT" @@ -876,7 +886,7 @@ class TosaTensorValuesGen: if testGen.args.lazy_data_gen: data = None - if tens_meta["input_type"] == "VARIABLE": + if variable: tens = testGen.ser.addPlaceholder(shape, dtypeList[idx], data) else: tens = testGen.ser.addConst(shape, dtypeList[idx], data) diff --git a/verif/generator/tosa_verif_build_tests.py b/verif/generator/tosa_verif_build_tests.py index 472ba4d..a46b061 100644 --- a/verif/generator/tosa_verif_build_tests.py +++ b/verif/generator/tosa_verif_build_tests.py @@ -249,6 +249,13 @@ def parseArgs(argv): help=f"Create test with a particular DType: [{', '.join([d.lower() for d in DTypeNames[1:]])}] (may be repeated)", ) + ops_group.add_argument( + "--random-const-inputs", + dest="random_const_inputs", + action="store_true", + help="Allow any combination of input/constant tensors for operators", + ) + ops_group.add_argument( "--num-const-inputs-concat", dest="num_const_inputs_concat", -- cgit v1.2.1