Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bf4edfb authored by I-Jui (Ray) Sung's avatar I-Jui (Ray) Sung Committed by Ray Sung
Browse files

Refactor test harness for generated VTS tests

Address comments in ag/2926388

Test: VtsHalNeuralnetworksV1_0TargetTest on Angler with sample driver
Bug: 67597726
Change-Id: Ie3118dcbfb11c25dbc84d2becdefbbae868ff28f
parent 239a4504
Loading
Loading
Loading
Loading
+5 −7
Original line number Original line Diff line number Diff line
@@ -46,11 +46,11 @@ using ::generated_tests::Int32Operands;
using ::generated_tests::Quant8Operands;
using ::generated_tests::Quant8Operands;
using ::generated_tests::compare;
using ::generated_tests::compare;


template <typename ty>
template <typename T>
void copy_back_(MixedTyped* dst, const std::vector<RequestArgument>& ra, char* src) {
void copy_back_(MixedTyped* dst, const std::vector<RequestArgument>& ra, char* src) {
    MixedTyped& test = *dst;
    MixedTyped& test = *dst;
    for_each(test, [&ra, src](int index, std::vector<ty>& m) {
    for_each<T>(test, [&ra, src](int index, std::vector<T>& m) {
        ASSERT_EQ(m.size(), ra[index].location.length / sizeof(ty));
        ASSERT_EQ(m.size(), ra[index].location.length / sizeof(T));
        char* begin = src + ra[index].location.offset;
        char* begin = src + ra[index].location.offset;
        memcpy(m.data(), begin, ra[index].location.length);
        memcpy(m.data(), begin, ra[index].location.length);
    });
    });
@@ -213,10 +213,8 @@ void Execute(const sp<IDevice>& device, std::function<Model(void)> create_model,
        copy_back(&test, outputs_info, outputPtr);
        copy_back(&test, outputs_info, outputPtr);
        outputMemory->commit();
        outputMemory->commit();
        // Filter out don't cares
        // Filter out don't cares
        MixedTyped filtered_golden;
        MixedTyped filtered_golden = filter(golden, is_ignored);
        MixedTyped filtered_test;
        MixedTyped filtered_test = filter(test, is_ignored);
        filter(golden, &filtered_golden, is_ignored);
        filter(test, &filtered_test, is_ignored);


        // We want "close-enough" results for float
        // We want "close-enough" results for float
        compare(filtered_golden, filtered_test);
        compare(filtered_golden, filtered_test);