diff options
author | Xusong Wang <xusongw@google.com> | 2020-03-17 17:37:33 -0700 |
---|---|---|
committer | Xusong Wang <xusongw@google.com> | 2020-03-18 15:25:22 -0700 |
commit | 28bc28712ef9ae5fc2be41ae53582560c88d3f70 (patch) | |
tree | 835a67d4e55fa864b1acb58620914908b57f012d /nn/runtime/test/fuzzing | |
parent | 397d2a01f7c3da5faeb2c9039bf4110050e28002 (diff) | |
download | ml-28bc28712ef9ae5fc2be41ae53582560c88d3f70.tar.gz |
Add TRANSPOSE with omitted permutation to RGG.
Fixes: 132323720
Test: NNT_static_fuzzing
Change-Id: I681fad8ec61bace438f4dec14972dc3600236468
Diffstat (limited to 'nn/runtime/test/fuzzing')
-rw-r--r-- | nn/runtime/test/fuzzing/operation_signatures/OperationSignatureUtils.h | 7 | ||||
-rw-r--r-- | nn/runtime/test/fuzzing/operation_signatures/Reshape.cpp | 35 |
2 files changed, 32 insertions, 10 deletions
diff --git a/nn/runtime/test/fuzzing/operation_signatures/OperationSignatureUtils.h b/nn/runtime/test/fuzzing/operation_signatures/OperationSignatureUtils.h index 7e7bd333b..ebb3b9f0d 100644 --- a/nn/runtime/test/fuzzing/operation_signatures/OperationSignatureUtils.h +++ b/nn/runtime/test/fuzzing/operation_signatures/OperationSignatureUtils.h @@ -415,6 +415,13 @@ inline void defaultScalarOperandConstructor(TestOperandType dataType, uint32_t, .constructor = [](TestOperandType, uint32_t, RandomOperand* op) { op->dataType = opType; } \ } +// A CONST omitted operand. +#define PARAMETER_NO_VALUE(opType) \ + { \ + .type = RandomOperandType::NO_VALUE, \ + .constructor = [](TestOperandType, uint32_t, RandomOperand* op) { op->dataType = opType; } \ + } + // A CONST integer scalar with value set as a FREE RandomVariable within default range. #define RANDOM_INT_FREE \ { \ diff --git a/nn/runtime/test/fuzzing/operation_signatures/Reshape.cpp b/nn/runtime/test/fuzzing/operation_signatures/Reshape.cpp index 419db3a9a..55d5ddba9 100644 --- a/nn/runtime/test/fuzzing/operation_signatures/Reshape.cpp +++ b/nn/runtime/test/fuzzing/operation_signatures/Reshape.cpp @@ -390,16 +390,31 @@ static void transposeConstructor(TestOperandType, uint32_t rank, RandomOperation setSameQuantization(op->outputs[0], op->inputs[0]); } -// TODO: Test the case when the second input is omitted. -#define DEFINE_TRANSPOSE_SIGNATURE(ver, ...) \ - DEFINE_OPERATION_SIGNATURE(TRANSPOSE_##ver){ \ - .opType = TestOperationType::TRANSPOSE, \ - .supportedDataTypes = {__VA_ARGS__}, \ - .supportedRanks = {1, 2, 3, 4}, \ - .version = TestHalVersion::ver, \ - .inputs = {INPUT_DEFAULT, PARAMETER_NONE(TestOperandType::TENSOR_INT32)}, \ - .outputs = {OUTPUT_DEFAULT}, \ - .constructor = transposeConstructor}; +static void transposeOmittedConstructor(TestOperandType, uint32_t rank, RandomOperation* op) { + NN_FUZZER_CHECK(rank == 2); + op->inputs[0]->dimensions = {RandomVariableType::FREE, RandomVariableType::FREE}; + op->inputs[1]->dimensions = {2}; + op->outputs[0]->dimensions = {op->inputs[0]->dimensions[1], op->inputs[0]->dimensions[0]}; + setSameQuantization(op->outputs[0], op->inputs[0]); +} + +#define DEFINE_TRANSPOSE_SIGNATURE(ver, ...) \ + DEFINE_OPERATION_SIGNATURE(TRANSPOSE_##ver){ \ + .opType = TestOperationType::TRANSPOSE, \ + .supportedDataTypes = {__VA_ARGS__}, \ + .supportedRanks = {1, 2, 3, 4}, \ + .version = TestHalVersion::ver, \ + .inputs = {INPUT_DEFAULT, PARAMETER_NONE(TestOperandType::TENSOR_INT32)}, \ + .outputs = {OUTPUT_DEFAULT}, \ + .constructor = transposeConstructor}; \ + DEFINE_OPERATION_SIGNATURE(TRANSPOSE_omitted_##ver){ \ + .opType = TestOperationType::TRANSPOSE, \ + .supportedDataTypes = {__VA_ARGS__}, \ + .supportedRanks = {2}, \ + .version = TestHalVersion::ver, \ + .inputs = {INPUT_DEFAULT, PARAMETER_NO_VALUE(TestOperandType::TENSOR_INT32)}, \ + .outputs = {OUTPUT_DEFAULT}, \ + .constructor = transposeOmittedConstructor}; DEFINE_TRANSPOSE_SIGNATURE(V1_1, TestOperandType::TENSOR_FLOAT32, TestOperandType::TENSOR_QUANT8_ASYMM); |