Loading neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -77,6 +77,13 @@ void copy_back(MixedTyped* dst, const std::vector<RequestArgument>& ra, char* sr "Number of types in MixedTyped changed, but copy_back function wasn't updated"); } static bool isZeroSized(const MixedTyped& example, uint32_t index) { for (auto i : example.operandDimensions.at(index)) { if (i == 0) return true; } return false; } // Top level driver for models and examples generated by test_generator.py // Test driver for those generated from ml/nn/runtime/test/spec static Return<ErrorStatus> ExecutePreparedModel(sp<V1_0::IPreparedModel>& preparedModel, Loading Loading @@ -178,19 +185,20 @@ void EvaluatePreparedModel(sp<T_IPreparedModel>& preparedModel, std::function<bo // Go through all outputs, initialize RequestArgument descriptors resize_accordingly(golden, test); bool sizeLargerThanOne = true; for_all(golden, [&outputs_info, &outputSize, &outputType, &sizeLargerThanOne]( for_all(golden, [&golden, &outputs_info, &outputSize, &outputType, &sizeLargerThanOne]( int index, auto, auto s) { if (outputs_info.size() <= static_cast<size_t>(index)) outputs_info.resize(index + 1); if (index == 0) { // On OutputType::INSUFFICIENT, set the output operand with index 0 with // buffer size one byte less than needed. if (outputType == OutputType::INSUFFICIENT) { if (s > 1) if (s > 1 && !isZeroSized(golden, index)) { s -= 1; else } else { sizeLargerThanOne = false; } } } RequestArgument arg = { .location = {.poolIndex = OUTPUT, .offset = 0, .length = static_cast<uint32_t>(s)}, .dimensions = {}, Loading Loading
neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -77,6 +77,13 @@ void copy_back(MixedTyped* dst, const std::vector<RequestArgument>& ra, char* sr "Number of types in MixedTyped changed, but copy_back function wasn't updated"); } static bool isZeroSized(const MixedTyped& example, uint32_t index) { for (auto i : example.operandDimensions.at(index)) { if (i == 0) return true; } return false; } // Top level driver for models and examples generated by test_generator.py // Test driver for those generated from ml/nn/runtime/test/spec static Return<ErrorStatus> ExecutePreparedModel(sp<V1_0::IPreparedModel>& preparedModel, Loading Loading @@ -178,19 +185,20 @@ void EvaluatePreparedModel(sp<T_IPreparedModel>& preparedModel, std::function<bo // Go through all outputs, initialize RequestArgument descriptors resize_accordingly(golden, test); bool sizeLargerThanOne = true; for_all(golden, [&outputs_info, &outputSize, &outputType, &sizeLargerThanOne]( for_all(golden, [&golden, &outputs_info, &outputSize, &outputType, &sizeLargerThanOne]( int index, auto, auto s) { if (outputs_info.size() <= static_cast<size_t>(index)) outputs_info.resize(index + 1); if (index == 0) { // On OutputType::INSUFFICIENT, set the output operand with index 0 with // buffer size one byte less than needed. if (outputType == OutputType::INSUFFICIENT) { if (s > 1) if (s > 1 && !isZeroSized(golden, index)) { s -= 1; else } else { sizeLargerThanOne = false; } } } RequestArgument arg = { .location = {.poolIndex = OUTPUT, .offset = 0, .length = static_cast<uint32_t>(s)}, .dimensions = {}, Loading