summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-09-18 09:44:19 -0700
committerZhijun He <zhijunhe@google.com>2013-09-19 19:01:04 -0700
commit60cbb52613d212236de49b4f22fe059585f8c1b2 (patch)
tree88a07dd383a264bdb277db4c14c92778f5a0d3fc /tests
parentb3ac07c0028b0afe8f9b009e37af90ec9a697b44 (diff)
downloadhardware_libhardware-60cbb52613d212236de49b4f22fe059585f8c1b2.zip
hardware_libhardware-60cbb52613d212236de49b4f22fe059585f8c1b2.tar.gz
hardware_libhardware-60cbb52613d212236de49b4f22fe059585f8c1b2.tar.bz2
Camera2 Test: Fix module and burst test issues
Bug: 10388724 Change-Id: Idc404cf8a7a96c00941aa8f1880734a236cb3737
Diffstat (limited to 'tests')
-rw-r--r--tests/camera2/CameraBurstTests.cpp34
-rw-r--r--tests/camera2/CameraModuleTests.cpp18
2 files changed, 35 insertions, 17 deletions
diff --git a/tests/camera2/CameraBurstTests.cpp b/tests/camera2/CameraBurstTests.cpp
index 67b29ab..47fcb3e 100644
--- a/tests/camera2/CameraBurstTests.cpp
+++ b/tests/camera2/CameraBurstTests.cpp
@@ -48,6 +48,11 @@
#define dout if (0) std::cout
#endif
+#define WARN_UNLESS(condition) (!(condition) ? (std::cerr) : (std::ostream(NULL)) << "Warning: ")
+#define WARN_LE(exp, act) WARN_UNLESS((exp) <= (act))
+#define WARN_LT(exp, act) WARN_UNLESS((exp) < (act))
+#define WARN_GT(exp, act) WARN_UNLESS((exp) > (act))
+
using namespace android;
using namespace android::camera2;
@@ -273,10 +278,16 @@ TEST_F(CameraBurstTest, ManualExposureControl) {
dout << "max doubling count: " << max_doubling_count << std::endl;
- EXPECT_LE(CAMERA_EXPOSURE_DOUBLING_COUNT, max_doubling_count)
- << "average brightness should double at least "
- << CAMERA_EXPOSURE_DOUBLING_COUNT
- << " times over each consecutive frame as the exposure is doubled";
+ /**
+ * Make this check warning only, since the brightness calculation is not reliable
+ * and we have separate test to cover this case. Plus it is pretty subtle to make
+ * it right without complicating the test too much.
+ */
+ WARN_LE(CAMERA_EXPOSURE_DOUBLING_COUNT, max_doubling_count)
+ << "average brightness should double at least "
+ << CAMERA_EXPOSURE_DOUBLING_COUNT
+ << " times over each consecutive frame as the exposure is doubled"
+ << std::endl;
}
/**
@@ -652,12 +663,13 @@ TEST_F(CameraBurstTest, VariableBurst) {
float evRatio = (prevEv > currentEv) ? (currentEv / prevEv) :
(prevEv / currentEv);
if ( evRatio > EV_MATCH_BOUND ) {
- EXPECT_LT( fabs(brightnesses[i] - brightnesses[i - 1]),
+ WARN_LT(fabs(brightnesses[i] - brightnesses[i - 1]),
BRIGHTNESS_MATCH_BOUND) <<
"Capture brightness different from previous, even though "
"they have the same EV value. Ev now: " << currentEv <<
", previous: " << prevEv << ". Brightness now: " <<
- brightnesses[i] << ", previous: " << brightnesses[i-1];
+ brightnesses[i] << ", previous: " << brightnesses[i-1] <<
+ std::endl;
}
// Only check timing if not saving to disk, since that slows things
// down substantially
@@ -665,12 +677,14 @@ TEST_F(CameraBurstTest, VariableBurst) {
nsecs_t timeDelta = captureTimes[i] - captureTimes[i-1];
nsecs_t expectedDelta = expList[i] > durationList[i] ?
expList[i] : durationList[i];
- EXPECT_LT(timeDelta, expectedDelta + DURATION_UPPER_BOUND) <<
+ WARN_LT(timeDelta, expectedDelta + DURATION_UPPER_BOUND) <<
"Capture took " << timeDelta << " ns to receive, but expected"
- " frame duration was " << expectedDelta << " ns.";
- EXPECT_GT(timeDelta, expectedDelta - DURATION_LOWER_BOUND) <<
+ " frame duration was " << expectedDelta << " ns." <<
+ std::endl;
+ WARN_GT(timeDelta, expectedDelta - DURATION_LOWER_BOUND) <<
"Capture took " << timeDelta << " ns to receive, but expected"
- " frame duration was " << expectedDelta << " ns.";
+ " frame duration was " << expectedDelta << " ns." <<
+ std::endl;
dout << "Time delta from previous frame: " << timeDelta / 1e6 <<
" ms. Expected " << expectedDelta / 1e6 << " ms" << std::endl;
}
diff --git a/tests/camera2/CameraModuleTests.cpp b/tests/camera2/CameraModuleTests.cpp
index 9bd65ec..ae4267b 100644
--- a/tests/camera2/CameraModuleTests.cpp
+++ b/tests/camera2/CameraModuleTests.cpp
@@ -78,15 +78,19 @@ TEST_F(CameraModuleTest, LoadModuleBadIndices) {
TEST_EXTENSION_FORKING_INIT;
int idx[] = { -1, mNumberOfCameras, mNumberOfCameras + 1 };
+ hw_device_t *device = NULL;
for (unsigned i = 0; i < sizeof(idx)/sizeof(idx[0]); ++i) {
- CreateCamera(idx[i], &mDevice);
- status_t deviceInitializeCode = initializeDevice(idx[i]);
- EXPECT_NE(OK, deviceInitializeCode);
- EXPECT_EQ(-ENODEV, deviceInitializeCode)
- << "Incorrect error code when trying to initialize invalid index "
- << idx[i];
- mDevice.clear();
+ String8 deviceName = String8::format("%d", idx[i]);
+ status_t res =
+ mModule->common.methods->open(
+ &mModule->common,
+ deviceName,
+ &device);
+ EXPECT_NE(OK, res);
+ EXPECT_EQ(-ENODEV, res)
+ << "Incorrect error code when trying to open camera with invalid id "
+ << deviceName;
}
}