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

Commit 57a33c7b authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

Audio: Add VTS tests for invalid enum-strings, Part 1b am: 9139399b am: 45e6ec48

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1543608

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I77b89e24613cdb6fb120dfbbaadffda35f6012e3
parents 8b85d991 45e6ec48
Loading
Loading
Loading
Loading
+17 −6
Original line number Original line Diff line number Diff line
@@ -478,13 +478,24 @@ Return<void> StreamIn::debug(const hidl_handle& fd, const hidl_vec<hidl_string>&
}
}


#if MAJOR_VERSION >= 4
#if MAJOR_VERSION >= 4
Result StreamIn::doUpdateSinkMetadata(const SinkMetadata& sinkMetadata,
Result StreamIn::doUpdateSinkMetadata(const SinkMetadata& sinkMetadata) {
                                      bool abortOnConversionFailure) {
    std::vector<record_track_metadata> halTracks;
    std::vector<record_track_metadata> halTracks;
    if (status_t status = sinkMetadataToHal(sinkMetadata, &halTracks);
#if MAJOR_VERSION <= 6
        status != NO_ERROR && abortOnConversionFailure) {
    (void)sinkMetadataToHal(sinkMetadata, &halTracks);
#else
    // Validate whether a conversion to V7 is possible. This is needed
    // to have a consistent behavior of the HAL regardless of the API
    // version of the legacy HAL (and also to be consistent with openInputStream).
    std::vector<record_track_metadata_v7> halTracksV7;
    if (status_t status = sinkMetadataToHalV7(sinkMetadata, &halTracksV7); status == NO_ERROR) {
        halTracks.reserve(halTracksV7.size());
        for (auto metadata_v7 : halTracksV7) {
            halTracks.push_back(std::move(metadata_v7.base));
        }
    } else {
        return Stream::analyzeStatus("sinkMetadataToHal", status);
        return Stream::analyzeStatus("sinkMetadataToHal", status);
    }
    }
#endif  // MAJOR_VERSION <= 6
    const sink_metadata_t halMetadata = {
    const sink_metadata_t halMetadata = {
        .track_count = halTracks.size(),
        .track_count = halTracks.size(),
        .tracks = halTracks.data(),
        .tracks = halTracks.data(),
@@ -513,7 +524,7 @@ Return<void> StreamIn::updateSinkMetadata(const SinkMetadata& sinkMetadata) {
    if (mStream->update_sink_metadata == nullptr) {
    if (mStream->update_sink_metadata == nullptr) {
        return Void();  // not supported by the HAL
        return Void();  // not supported by the HAL
    }
    }
    (void)doUpdateSinkMetadata(sinkMetadata, false /*abortOnConversionFailure*/);
    (void)doUpdateSinkMetadata(sinkMetadata);
    return Void();
    return Void();
}
}
#elif MAJOR_VERSION >= 7
#elif MAJOR_VERSION >= 7
@@ -522,7 +533,7 @@ Return<Result> StreamIn::updateSinkMetadata(const SinkMetadata& sinkMetadata) {
        if (mStream->update_sink_metadata == nullptr) {
        if (mStream->update_sink_metadata == nullptr) {
            return Result::NOT_SUPPORTED;
            return Result::NOT_SUPPORTED;
        }
        }
        return doUpdateSinkMetadata(sinkMetadata, true /*abortOnConversionFailure*/);
        return doUpdateSinkMetadata(sinkMetadata);
    } else {
    } else {
        if (mStream->update_sink_metadata_v7 == nullptr) {
        if (mStream->update_sink_metadata_v7 == nullptr) {
            return Result::NOT_SUPPORTED;
            return Result::NOT_SUPPORTED;
+17 −6
Original line number Original line Diff line number Diff line
@@ -586,13 +586,24 @@ Return<void> StreamOut::debug(const hidl_handle& fd, const hidl_vec<hidl_string>
}
}


#if MAJOR_VERSION >= 4
#if MAJOR_VERSION >= 4
Result StreamOut::doUpdateSourceMetadata(const SourceMetadata& sourceMetadata,
Result StreamOut::doUpdateSourceMetadata(const SourceMetadata& sourceMetadata) {
                                         bool abortOnConversionFailure) {
    std::vector<playback_track_metadata_t> halTracks;
    std::vector<playback_track_metadata_t> halTracks;
    if (status_t status = sourceMetadataToHal(sourceMetadata, &halTracks);
#if MAJOR_VERSION <= 6
        status != NO_ERROR && abortOnConversionFailure) {
    (void)sourceMetadataToHal(sourceMetadata, &halTracks);
#else
    // Validate whether a conversion to V7 is possible. This is needed
    // to have a consistent behavior of the HAL regardless of the API
    // version of the legacy HAL (and also to be consistent with openOutputStream).
    std::vector<playback_track_metadata_v7> halTracksV7;
    if (status_t status = sourceMetadataToHalV7(sourceMetadata, &halTracksV7); status == NO_ERROR) {
        halTracks.reserve(halTracksV7.size());
        for (auto metadata_v7 : halTracksV7) {
            halTracks.push_back(std::move(metadata_v7.base));
        }
    } else {
        return Stream::analyzeStatus("sourceMetadataToHal", status);
        return Stream::analyzeStatus("sourceMetadataToHal", status);
    }
    }
#endif  // MAJOR_VERSION <= 6
    const source_metadata_t halMetadata = {
    const source_metadata_t halMetadata = {
        .track_count = halTracks.size(),
        .track_count = halTracks.size(),
        .tracks = halTracks.data(),
        .tracks = halTracks.data(),
@@ -621,7 +632,7 @@ Return<void> StreamOut::updateSourceMetadata(const SourceMetadata& sourceMetadat
    if (mStream->update_source_metadata == nullptr) {
    if (mStream->update_source_metadata == nullptr) {
        return Void();  // not supported by the HAL
        return Void();  // not supported by the HAL
    }
    }
    (void)doUpdateSourceMetadata(sourceMetadata, false /*abortOnConversionFailure*/);
    (void)doUpdateSourceMetadata(sourceMetadata);
    return Void();
    return Void();
}
}
#elif MAJOR_VERSION >= 7
#elif MAJOR_VERSION >= 7
@@ -630,7 +641,7 @@ Return<Result> StreamOut::updateSourceMetadata(const SourceMetadata& sourceMetad
        if (mStream->update_source_metadata == nullptr) {
        if (mStream->update_source_metadata == nullptr) {
            return Result::NOT_SUPPORTED;
            return Result::NOT_SUPPORTED;
        }
        }
        return doUpdateSourceMetadata(sourceMetadata, true /*abortOnConversionFailure*/);
        return doUpdateSourceMetadata(sourceMetadata);
    } else {
    } else {
        if (mStream->update_source_metadata_v7 == nullptr) {
        if (mStream->update_source_metadata_v7 == nullptr) {
            return Result::NOT_SUPPORTED;
            return Result::NOT_SUPPORTED;
+1 −1
Original line number Original line Diff line number Diff line
@@ -130,7 +130,7 @@ struct StreamIn : public IStreamIn {


  private:
  private:
#if MAJOR_VERSION >= 4
#if MAJOR_VERSION >= 4
    Result doUpdateSinkMetadata(const SinkMetadata& sinkMetadata, bool abortOnConversionFailure);
    Result doUpdateSinkMetadata(const SinkMetadata& sinkMetadata);
#if MAJOR_VERSION >= 7
#if MAJOR_VERSION >= 7
    Result doUpdateSinkMetadataV7(const SinkMetadata& sinkMetadata);
    Result doUpdateSinkMetadataV7(const SinkMetadata& sinkMetadata);
#endif
#endif
+1 −2
Original line number Original line Diff line number Diff line
@@ -148,8 +148,7 @@ struct StreamOut : public IStreamOut {


  private:
  private:
#if MAJOR_VERSION >= 4
#if MAJOR_VERSION >= 4
    Result doUpdateSourceMetadata(const SourceMetadata& sourceMetadata,
    Result doUpdateSourceMetadata(const SourceMetadata& sourceMetadata);
                                  bool abortOnConversionFailure);
#if MAJOR_VERSION >= 7
#if MAJOR_VERSION >= 7
    Result doUpdateSourceMetadataV7(const SourceMetadata& sourceMetadata);
    Result doUpdateSourceMetadataV7(const SourceMetadata& sourceMetadata);
#endif
#endif
+48 −2
Original line number Original line Diff line number Diff line
@@ -401,6 +401,22 @@ static const RecordTrackMetadata& getRecordTrackMetadataWithInvalidDest() {
    return invalid;
    return invalid;
}
}


static const RecordTrackMetadata& getInvalidChannelMaskRecordTrackMetadata() {
    static const RecordTrackMetadata invalid = {
            .source = toString(xsd::AudioSource::AUDIO_SOURCE_DEFAULT),
            .gain = 1,
            .channelMask = "random_string"};
    return invalid;
}

static const RecordTrackMetadata& getInvalidTagsRecordTrackMetadata() {
    static const RecordTrackMetadata invalid = {
            .source = toString(xsd::AudioSource::AUDIO_SOURCE_DEFAULT),
            .gain = 1,
            .tags = {{"random_string"}}};
    return invalid;
}

static const PlaybackTrackMetadata& getValidPlaybackTrackMetadata() {
static const PlaybackTrackMetadata& getValidPlaybackTrackMetadata() {
    static const PlaybackTrackMetadata valid = {
    static const PlaybackTrackMetadata valid = {
            .usage = toString(xsd::AudioUsage::AUDIO_USAGE_MEDIA),
            .usage = toString(xsd::AudioUsage::AUDIO_USAGE_MEDIA),
@@ -425,24 +441,54 @@ static const PlaybackTrackMetadata& getInvalidContentTypePlaybackTrackMetadata()
    return invalid;
    return invalid;
}
}


static const PlaybackTrackMetadata& getInvalidChannelMaskPlaybackTrackMetadata() {
    static const PlaybackTrackMetadata invalid = {
            .usage = toString(xsd::AudioUsage::AUDIO_USAGE_MEDIA),
            .contentType = toString(xsd::AudioContentType::AUDIO_CONTENT_TYPE_MUSIC),
            .gain = 1,
            .channelMask = "random_string"};
    return invalid;
}

static const PlaybackTrackMetadata& getInvalidTagsPlaybackTrackMetadata() {
    static const PlaybackTrackMetadata invalid = {
            .usage = toString(xsd::AudioUsage::AUDIO_USAGE_MEDIA),
            .contentType = toString(xsd::AudioContentType::AUDIO_CONTENT_TYPE_MUSIC),
            .gain = 1,
            .tags = {{"random_string"}}};
    return invalid;
}

static const std::vector<SourceMetadata>& getInvalidSourceMetadatas() {
static const std::vector<SourceMetadata>& getInvalidSourceMetadatas() {
    static const std::vector<SourceMetadata> invalids = {
    static const std::vector<SourceMetadata> invalids = {
            SourceMetadata{.tracks = {{getInvalidUsagePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getInvalidUsagePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getInvalidContentTypePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getInvalidContentTypePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getInvalidChannelMaskPlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getInvalidTagsPlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
                                       getInvalidUsagePlaybackTrackMetadata()}}},
                                       getInvalidUsagePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
                                       getInvalidContentTypePlaybackTrackMetadata()}}}};
                                       getInvalidContentTypePlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
                                       getInvalidChannelMaskPlaybackTrackMetadata()}}},
            SourceMetadata{.tracks = {{getValidPlaybackTrackMetadata(),
                                       getInvalidTagsPlaybackTrackMetadata()}}}};
    return invalids;
    return invalids;
}
}
static const std::vector<SinkMetadata>& getInvalidSinkMetadatas() {
static const std::vector<SinkMetadata>& getInvalidSinkMetadatas() {
    static const std::vector<SinkMetadata> invalids = {
    static const std::vector<SinkMetadata> invalids = {
            SinkMetadata{.tracks = {{getInvalidSourceRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getInvalidSourceRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getRecordTrackMetadataWithInvalidDest()}}},
            SinkMetadata{.tracks = {{getRecordTrackMetadataWithInvalidDest()}}},
            SinkMetadata{.tracks = {{getInvalidChannelMaskRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getInvalidTagsRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
                                     getInvalidSourceRecordTrackMetadata()}}},
                                     getInvalidSourceRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
                                     getRecordTrackMetadataWithInvalidDest()}}}};
                                     getRecordTrackMetadataWithInvalidDest()}}},
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
                                     getInvalidChannelMaskRecordTrackMetadata()}}},
            SinkMetadata{.tracks = {{getValidRecordTrackMetadata(),
                                     getInvalidTagsRecordTrackMetadata()}}}};
    return invalids;
    return invalids;
}
}
template <typename T>
template <typename T>