ml: fix vts called on a disengaged value issue
The variable extraParams in aidl vts is a optional, when it is empty, the extraParams->set will fail on error: optional operator-> called on a disengaged value.
BUG=b:253138038
TEST=USE="-vendor-nnhal" FEATURES=nostrip emerge-asurada
aosp-frameworks-ml-nn-vts && cros_nnapi_vts_aidl
Change-Id: I34bb2d02fc78c5d031a992d2a5ea9c8d92f370ef
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/hardware/interfaces/neuralnetworks/+/3947888
Tested-by: Jack Shen <jackshen@google.com>
Commit-Queue: Jack Shen <jackshen@google.com>
Reviewed-by: Jim Pollock <jmpollock@chromium.org>
diff --git a/aidl/vts/functional/ValidateModel.cpp b/aidl/vts/functional/ValidateModel.cpp
index 060434e..089710e 100644
--- a/aidl/vts/functional/ValidateModel.cpp
+++ b/aidl/vts/functional/ValidateModel.cpp
@@ -824,6 +824,7 @@
for (size_t i = 0; i < channelQuant.scales.size(); ++i) {
channelQuant.scales[i] = 1.0f;
}
+ newOperand.extraParams.emplace(::aidl::android::hardware::neuralnetworks::OperandExtraParams {});
newOperand.extraParams->set<OperandExtraParams::Tag::channelQuant>(
std::move(channelQuant));
} break;