summaryrefslogtreecommitdiff
path: root/nn/runtime/test/fuzzing
diff options
context:
space:
mode:
authorXusong Wang <xusongw@google.com>2020-04-21 14:49:06 -0700
committerXusong Wang <xusongw@google.com>2020-04-21 15:52:31 -0700
commitb822394e13b92f22422fad8c5a3a7dbca214b40d (patch)
tree0d45cf4a0529e72958e89eedceb2afd9b23bb745 /nn/runtime/test/fuzzing
parent20b7f24c921bd47d16c89127802b5e9203b3f68a (diff)
downloadml-b822394e13b92f22422fad8c5a3a7dbca214b40d.tar.gz
Add STRIDED_SLICE with shrinkMask in RGG tests.
Fixes: 132322549 Test: NNT_static_fuzzing Change-Id: I85577481125e131741992e9d896d12320af67e1a
Diffstat (limited to 'nn/runtime/test/fuzzing')
-rw-r--r--nn/runtime/test/fuzzing/operation_signatures/Selection.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/nn/runtime/test/fuzzing/operation_signatures/Selection.cpp b/nn/runtime/test/fuzzing/operation_signatures/Selection.cpp
index 185644092..6d45d0433 100644
--- a/nn/runtime/test/fuzzing/operation_signatures/Selection.cpp
+++ b/nn/runtime/test/fuzzing/operation_signatures/Selection.cpp
@@ -280,8 +280,7 @@ static void stridedSliceConstructor(TestOperandType, uint32_t rank, RandomOperat
setFreeDimensions(op->inputs[0], rank);
std::vector<bool> shrinkMask(rank, false);
for (uint32_t i = 0; i < rank; i++) {
- // TODO: Currently shrinkMask is always set to false.
- shrinkMask[i] = false;
+ shrinkMask[i] = getBernoulli(0.2f);
int32_t stride = getUniform<int32_t>(1, 3);
op->inputs[3]->value<int32_t>(i) = stride;
if (!shrinkMask[i]) {
@@ -303,7 +302,8 @@ static void stridedSliceFinalizer(RandomOperation* op) {
for (uint32_t i = 0, o = 0; i < rank; i++) {
int32_t inputSize = op->inputs[0]->dimensions[i].getValue();
int32_t stride = op->inputs[3]->value<int32_t>(i);
- if ((shrinkMask & (1 << i)) == 0) {
+ bool shrink = shrinkMask & (1 << i);
+ if (!shrink) {
int32_t outputSize = op->outputs[0]->dimensions[o++].getValue();
int32_t maxStart = inputSize - (outputSize - 1) * stride - 1;
begin[i] = getUniform<int32_t>(0, maxStart);
@@ -328,7 +328,8 @@ static void stridedSliceFinalizer(RandomOperation* op) {
}
// Switch to negative stride.
- if (getBernoulli(0.2f)) {
+ // TODO(b/154639297): shrinkMask with negative stride will produce uninitialized output.
+ if (!shrink && getBernoulli(0.2f)) {
op->inputs[3]->value<int32_t>(i) = -stride;
std::swap(begin[i], end[i]);
std::swap(beginMask[i], endMask[i]);