Ensure that drivers return an error if STRIDED_SLICE parameters are invalid

We don't have a framework for handcrafting tests resulting in execution
failure. To produce this test, I created
strided_slice_invalid_output_dims.mod.py and used our VTS test generator
to create the corresponding example.cpp and model.cpp files. I put those
under the new directory neuralnetworks/1.2/vts/functional/generated to
distinguish them from the streamlined generated tests.

Bug: 79856511
Bug: 132155416
Test: VtsHalNeuralnetworksV1_2TargetTest
Change-Id: Ib331778605c2e3828195e1e7d1651091873985a0
Merged-In: Ib331778605c2e3828195e1e7d1651091873985a0
(cherry picked from commit 1a18c080520837fea7caf2f0031a5d02931b5aee)
diff --git a/neuralnetworks/1.2/vts/functional/ValidateRequest.cpp b/neuralnetworks/1.2/vts/functional/ValidateRequest.cpp
index 9703c2d..e935aaa 100644
--- a/neuralnetworks/1.2/vts/functional/ValidateRequest.cpp
+++ b/neuralnetworks/1.2/vts/functional/ValidateRequest.cpp
@@ -274,6 +274,22 @@
     }
 }
 
+void ValidationTest::validateRequestFailure(const sp<IPreparedModel>& preparedModel,
+                                            const std::vector<Request>& requests) {
+    for (const Request& request : requests) {
+        SCOPED_TRACE("Expecting request to fail [executeSynchronously]");
+        Return<void> executeStatus = preparedModel->executeSynchronously(
+                request, MeasureTiming::NO,
+                [](ErrorStatus error, const hidl_vec<OutputShape>& outputShapes,
+                   const Timing& timing) {
+                    ASSERT_NE(ErrorStatus::NONE, error);
+                    EXPECT_EQ(outputShapes.size(), 0);
+                    EXPECT_TRUE(badTiming(timing));
+                });
+        ASSERT_TRUE(executeStatus.isOk());
+    }
+}
+
 }  // namespace functional
 }  // namespace vts
 }  // namespace V1_2