Merge "VTS: Do not require XML for Audio effect V2" into pi-dev

This commit is contained in:
Kevin Rocard
2018-07-23 16:42:24 +00:00
committed by Android (Google) Code Review
3 changed files with 40 additions and 20 deletions

View File

@@ -45,29 +45,37 @@ namespace utility {
xmlFilePath, xsdFilePath) xmlFilePath, xsdFilePath)
/** Validate an XML according to an xsd. /** Validate an XML according to an xsd.
* The XML file must be in at least one of the provided locations. * All file named xmlFileName in each xmlFileLocations folder must be valid if present.
* If multiple are found, all are validated. * @tparam atLeastOneRequired If true, at least one file has to be found.
* If false, no found file is a success.
*/ */
template <bool atLeastOneRequired = true>
::testing::AssertionResult validateXmlMultipleLocations( ::testing::AssertionResult validateXmlMultipleLocations(
const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr, const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr,
const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath); const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath);
/** ASSERT that an XML is valid according to an xsd. /** ASSERT that all found XML are valid according to an xsd. */
* The XML file must be in at least one of the provided locations. #define ASSERT_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
* If multiple are found, all are validated. ASSERT_PRED_FORMAT3( \
*/ ::android::hardware::audio::common::test::utility::validateXmlMultipleLocations<false>, \
#define ASSERT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
ASSERT_PRED_FORMAT3( \
::android::hardware::audio::common::test::utility::validateXmlMultipleLocations, \
xmlFileName, xmlFileLocations, xsdFilePath) xmlFileName, xmlFileLocations, xsdFilePath)
/** EXPECT an XML to be valid according to an xsd. /** EXPECT that all found XML are valid according to an xsd. */
* The XML file must be in at least one of the provided locations. #define EXPECT_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
* If multiple are found, all are validated. EXPECT_PRED_FORMAT3( \
*/ ::android::hardware::audio::common::test::utility::validateXmlMultipleLocations<false>, \
#define EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \ xmlFileName, xmlFileLocations, xsdFilePath)
EXPECT_PRED_FORMAT3( \
::android::hardware::audio::common::test::utility::validateXmlMultipleLocations, \ /** ASSERT that all found XML are valid according to an xsd. At least one must be found. */
#define ASSERT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
ASSERT_PRED_FORMAT3( \
::android::hardware::audio::common::test::utility::validateXmlMultipleLocations<true>, \
xmlFileName, xmlFileLocations, xsdFilePath)
/** EXPECT that all found XML are valid according to an xsd. At least one must be found. */
#define EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
EXPECT_PRED_FORMAT3( \
::android::hardware::audio::common::test::utility::validateXmlMultipleLocations<true>, \
xmlFileName, xmlFileLocations, xsdFilePath) xmlFileName, xmlFileLocations, xsdFilePath)
} // namespace utility } // namespace utility

View File

@@ -129,6 +129,7 @@ struct Libxml2Global {
return ::testing::AssertionSuccess(); return ::testing::AssertionSuccess();
} }
template <bool atLeastOneRequired>
::testing::AssertionResult validateXmlMultipleLocations( ::testing::AssertionResult validateXmlMultipleLocations(
const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr, const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr,
const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath) { const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath) {
@@ -150,7 +151,7 @@ struct Libxml2Global {
} }
} }
if (foundFiles.empty()) { if (atLeastOneRequired && foundFiles.empty()) {
errors.push_back("No xml file found in provided locations.\n"); errors.push_back("No xml file found in provided locations.\n");
} }
@@ -160,9 +161,20 @@ struct Libxml2Global {
<< " While validating all: " << xmlFileNameExpr << " While validating all: " << xmlFileNameExpr
<< "\n Which is: " << xmlFileName << "\n Which is: " << xmlFileName
<< "\n In the following folders: " << xmlFileLocationsExpr << "\n In the following folders: " << xmlFileLocationsExpr
<< "\n Which is: " << ::testing::PrintToString(xmlFileLocations); << "\n Which is: " << ::testing::PrintToString(xmlFileLocations)
<< (atLeastOneRequired ? "Where at least one file must be found."
: "Where no file might exist.");
} }
template ::testing::AssertionResult validateXmlMultipleLocations<true>(const char*, const char*,
const char*, const char*,
std::vector<const char*>,
const char*);
template ::testing::AssertionResult validateXmlMultipleLocations<false>(const char*, const char*,
const char*, const char*,
std::vector<const char*>,
const char*);
} // namespace utility } // namespace utility
} // namespace test } // namespace test
} // namespace common } // namespace common

View File

@@ -27,6 +27,6 @@ TEST(CheckConfig, audioEffectsConfigurationValidation) {
using namespace android::effectsConfig; using namespace android::effectsConfig;
std::vector<const char*> locations(std::begin(DEFAULT_LOCATIONS), std::end(DEFAULT_LOCATIONS)); std::vector<const char*> locations(std::begin(DEFAULT_LOCATIONS), std::end(DEFAULT_LOCATIONS));
EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(DEFAULT_NAME, locations, EXPECT_VALID_XML_MULTIPLE_LOCATIONS(DEFAULT_NAME, locations,
"/data/local/tmp/audio_effects_conf_V2_0.xsd"); "/data/local/tmp/audio_effects_conf_V2_0.xsd");
} }