blob: 3b6d6e1ec49c73e6bc25c846d0e4246a3aff7297 [file] [log] [blame]
#include <android/log.h>
#include <gtest/gtest.h>
#include "dvr_api_test.h"
namespace {
class DvrTrackingTest : public DvrApiTest {};
#if DVR_TRACKING_IMPLEMENTED
TEST_F(DvrTrackingTest, Implemented) {
ASSERT_TRUE(api_.TrackingCameraCreate != nullptr);
ASSERT_TRUE(api_.TrackingCameraStart != nullptr);
ASSERT_TRUE(api_.TrackingCameraStop != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorCreate != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorDestroy != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorStart != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorStop != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorProcessBuffer != nullptr);
}
TEST_F(DvrTrackingTest, CameraCreateFailsForInvalidInput) {
int ret;
ret = api_.TrackingCameraCreate(nullptr);
EXPECT_EQ(ret, -EINVAL);
DvrTrackingCamera* camera = reinterpret_cast<DvrTrackingCamera*>(42);
ret = api_.TrackingCameraCreate(&camera);
EXPECT_EQ(ret, -EINVAL);
}
TEST_F(DvrTrackingTest, CameraCreateDestroy) {
DvrTrackingCamera* camera = nullptr;
int ret = api_.TrackingCameraCreate(&camera);
EXPECT_EQ(ret, 0);
ASSERT_TRUE(camera != nullptr);
api_.TrackingCameraDestroy(camera);
}
TEST_F(DvrTrackingTest, FeatureExtractorCreateFailsForInvalidInput) {
int ret;
ret = api_.TrackingFeatureExtractorCreate(nullptr);
EXPECT_EQ(ret, -EINVAL);
DvrTrackingFeatureExtractor* camera =
reinterpret_cast<DvrTrackingFeatureExtractor*>(42);
ret = api_.TrackingFeatureExtractorCreate(&camera);
EXPECT_EQ(ret, -EINVAL);
}
TEST_F(DvrTrackingTest, FeatureExtractorCreateDestroy) {
DvrTrackingFeatureExtractor* camera = nullptr;
int ret = api_.TrackingFeatureExtractorCreate(&camera);
EXPECT_EQ(ret, 0);
ASSERT_TRUE(camera != nullptr);
api_.TrackingFeatureExtractorDestroy(camera);
}
#else // !DVR_TRACKING_IMPLEMENTED
TEST_F(DvrTrackingTest, NotImplemented) {
ASSERT_TRUE(api_.TrackingCameraCreate != nullptr);
ASSERT_TRUE(api_.TrackingCameraDestroy != nullptr);
ASSERT_TRUE(api_.TrackingCameraStart != nullptr);
ASSERT_TRUE(api_.TrackingCameraStop != nullptr);
EXPECT_EQ(api_.TrackingCameraCreate(nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingCameraStart(nullptr, nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingCameraStop(nullptr), -ENOSYS);
ASSERT_TRUE(api_.TrackingFeatureExtractorCreate != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorDestroy != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorStart != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorStop != nullptr);
ASSERT_TRUE(api_.TrackingFeatureExtractorProcessBuffer != nullptr);
EXPECT_EQ(api_.TrackingFeatureExtractorCreate(nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingFeatureExtractorStart(nullptr, nullptr, nullptr),
-ENOSYS);
EXPECT_EQ(api_.TrackingFeatureExtractorStop(nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingFeatureExtractorProcessBuffer(nullptr, nullptr,
nullptr, nullptr),
-ENOSYS);
ASSERT_TRUE(api_.TrackingSensorsCreate != nullptr);
ASSERT_TRUE(api_.TrackingSensorsDestroy != nullptr);
ASSERT_TRUE(api_.TrackingSensorsStart != nullptr);
ASSERT_TRUE(api_.TrackingSensorsStop != nullptr);
EXPECT_EQ(api_.TrackingSensorsCreate(nullptr, nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingSensorsStart(nullptr, nullptr, nullptr), -ENOSYS);
EXPECT_EQ(api_.TrackingSensorsStop(nullptr), -ENOSYS);
}
#endif // DVR_TRACKING_IMPLEMENTED
} // namespace