Camera: fix various VTS issues

am: a0dd95d45d

Change-Id: I1fe7b8e4e17af70776f197ea25ecdd4281c34e5c
This commit is contained in:
Yin-Chia Yeh
2017-07-31 08:55:46 +00:00
committed by android-build-merger

View File

@@ -131,22 +131,34 @@ namespace {
const char *kHAL1_0 = "1.0";
bool matchDeviceName(const hidl_string& deviceName,
const hidl_string &providerType, std::smatch& sm) {
const hidl_string &providerType,
std::string* deviceVersion,
std::string* cameraId) {
::android::String8 pattern;
pattern.appendFormat(kDeviceNameRE, providerType.c_str());
std::regex e(pattern.string());
std::string deviceNameStd(deviceName.c_str());
return std::regex_match(deviceNameStd, sm, e);
std::smatch sm;
if (std::regex_match(deviceNameStd, sm, e)) {
if (deviceVersion != nullptr) {
*deviceVersion = sm[1];
}
if (cameraId != nullptr) {
*cameraId = sm[2];
}
return true;
}
return false;
}
int getCameraDeviceVersion(const hidl_string& deviceName,
const hidl_string &providerType) {
std::smatch sm;
bool match = matchDeviceName(deviceName, providerType, sm);
std::string version;
bool match = matchDeviceName(deviceName, providerType, &version, nullptr);
if (!match) {
return -1;
}
std::string version = sm[1].str();
if (version.compare(kHAL3_2) == 0) {
// maybe switched to 3.4 or define the hidl version enumlater
return CAMERA_DEVICE_API_VERSION_3_2;
@@ -2978,6 +2990,9 @@ TEST_F(CameraHidlTest, processCaptureRequestPreview) {
//Empty settings should be supported after the first call
//for repeating requests.
request.settings.setToExternal(nullptr, 0, true);
// The buffer has been registered to HAL by bufferId, so per
// API contract we should send a null handle for this buffer
request.outputBuffers[0].buffer = nullptr;
mInflightMap.clear();
inflightReq = {1, false, supportsPartialResults,
partialResultCount, resultQueue};
@@ -3074,7 +3089,10 @@ TEST_F(CameraHidlTest, processCaptureRequestInvalidSinglePreview) {
numRequestProcessed = n;
});
ASSERT_TRUE(ret.isOk());
ASSERT_EQ(Status::INTERNAL_ERROR, status);
// b/64041692: Temporariy accept ILLEGAL_ARGUMENT or INTERNAL_ERROR
// It will be changed to only accept ILLEGAL_ARGUMENT in next release
ASSERT_TRUE(status == Status::ILLEGAL_ARGUMENT ||
status == Status::INTERNAL_ERROR);
ASSERT_EQ(numRequestProcessed, 0u);
ret = session->close();
@@ -3135,7 +3153,10 @@ TEST_F(CameraHidlTest, processCaptureRequestInvalidBuffer) {
numRequestProcessed = n;
});
ASSERT_TRUE(ret.isOk());
ASSERT_EQ(Status::INTERNAL_ERROR, status);
// b/64041692: Temporariy accept ILLEGAL_ARGUMENT or INTERNAL_ERROR
// It will be changed to only accept ILLEGAL_ARGUMENT in next release
ASSERT_TRUE(status == Status::ILLEGAL_ARGUMENT ||
status == Status::INTERNAL_ERROR);
ASSERT_EQ(numRequestProcessed, 0u);
ret = session->close();