mirror of
https://github.com/openharmony/distributed_camera.git
synced 2026-07-21 04:05:22 -04:00
fix distributed camera ut bug
Signed-off-by: zhuxu <zhuxu29@huawei.com>
This commit is contained in:
@@ -87,8 +87,6 @@ ohos_shared_library("distributed_camera_client") {
|
||||
]
|
||||
|
||||
external_deps = [
|
||||
"access_token:libaccesstoken_sdk",
|
||||
"access_token:libtoken_setproc",
|
||||
"hiviewdfx_hilog_native:libhilog",
|
||||
"multimedia_media_standard:media_client",
|
||||
]
|
||||
|
||||
@@ -18,19 +18,14 @@
|
||||
|
||||
#include "icamera_operator.h"
|
||||
|
||||
#include "access_token.h"
|
||||
#include "accesstoken_kit.h"
|
||||
#include "camera_info.h"
|
||||
#include "camera_input.h"
|
||||
#include "camera_manager.h"
|
||||
#include "capture_input.h"
|
||||
#include "capture_output.h"
|
||||
#include "capture_session.h"
|
||||
#include "hap_token_info.h"
|
||||
#include "ipc_skeleton.h"
|
||||
#include "photo_output.h"
|
||||
#include "preview_output.h"
|
||||
#include "token_setproc.h"
|
||||
#include "video_output.h"
|
||||
|
||||
#include "dcamera_photo_surface_listener.h"
|
||||
@@ -38,52 +33,6 @@
|
||||
|
||||
namespace OHOS {
|
||||
namespace DistributedHardware {
|
||||
const std::string OHOS_PERMISSION_CAMERA = "ohos.permission.CAMERA";
|
||||
const std::string APP_ID_DESC = "distributed camera";
|
||||
const std::string LABEL = "label";
|
||||
const std::string DESCRIPTION = "distributed camera";
|
||||
const std::string RES_DEVICE_ID = "local";
|
||||
const std::string DOMAIN = "distribtued_camera.domain";
|
||||
const int32_t USER_ID = 1;
|
||||
const int32_t INST_INDEX = 0;
|
||||
const int32_t GRANT_MODE = 1;
|
||||
const int32_t GRANT_FLAGS = 1;
|
||||
const int32_t LABEL_ID = 1;
|
||||
const int32_t DESCRIPTION_ID = 1;
|
||||
|
||||
const Security::AccessToken::HapInfoParams HAP_INFO_PARAMS = {
|
||||
.userID = USER_ID,
|
||||
.bundleName = OHOS_PERMISSION_CAMERA,
|
||||
.instIndex = INST_INDEX,
|
||||
.appIDDesc = APP_ID_DESC
|
||||
};
|
||||
|
||||
const Security::AccessToken::PermissionDef PERMISSION_DEF = {
|
||||
.permissionName = OHOS_PERMISSION_CAMERA,
|
||||
.bundleName = OHOS_PERMISSION_CAMERA,
|
||||
.grantMode = GRANT_MODE,
|
||||
.availableLevel = Security::AccessToken::ATokenAplEnum::APL_NORMAL,
|
||||
.label = LABEL,
|
||||
.labelId = LABEL_ID,
|
||||
.description = DESCRIPTION,
|
||||
.descriptionId = DESCRIPTION_ID
|
||||
};
|
||||
|
||||
const Security::AccessToken::PermissionStateFull PERMISSION_STATE_FULL = {
|
||||
.permissionName = OHOS_PERMISSION_CAMERA,
|
||||
.isGeneral = true,
|
||||
.resDeviceID = {RES_DEVICE_ID},
|
||||
.grantStatus = {Security::AccessToken::PermissionState::PERMISSION_GRANTED},
|
||||
.grantFlags = {GRANT_FLAGS}
|
||||
};
|
||||
|
||||
const Security::AccessToken::HapPolicyParams HAP_POLICY_PARAMS = {
|
||||
.apl = Security::AccessToken::ATokenAplEnum::APL_NORMAL,
|
||||
.domain = DOMAIN,
|
||||
.permList = {PERMISSION_DEF},
|
||||
.permStateList = {PERMISSION_STATE_FULL}
|
||||
};
|
||||
|
||||
class DCameraClient : public ICameraOperator {
|
||||
public:
|
||||
explicit DCameraClient(const std::string& dhId);
|
||||
@@ -124,7 +73,6 @@ private:
|
||||
std::shared_ptr<ResultCallback> resultCallback_;
|
||||
std::shared_ptr<DCameraPhotoSurfaceListener> photoListener_;
|
||||
std::shared_ptr<DCameraVideoSurfaceListener> videoListener_;
|
||||
Security::AccessToken::AccessTokenIDEx tokenIdEx_;
|
||||
};
|
||||
} // namespace DistributedHardware
|
||||
} // namespace OHOS
|
||||
|
||||
@@ -36,21 +36,6 @@ DCameraClient::DCameraClient(const std::string& dhId)
|
||||
DHLOGI("DCameraClient Constructor dhId: %s", GetAnonyString(dhId).c_str());
|
||||
cameraId_ = dhId.substr(CAMERA_ID_PREFIX.size());
|
||||
isInit_ = false;
|
||||
|
||||
tokenIdEx_ = Security::AccessToken::AccessTokenKit::AllocHapToken(HAP_INFO_PARAMS, HAP_POLICY_PARAMS);
|
||||
if (tokenIdEx_.tokenIdExStruct.tokenID == 0) {
|
||||
DHLOGE("DCameraClient Constructor alloc tokenId failed, dhId: %s", GetAnonyString(dhId).c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
(void)SetSelfTokenID(tokenIdEx_.tokenIdExStruct.tokenID);
|
||||
|
||||
int32_t ret = Security::AccessToken::AccessTokenKit::GrantPermission(tokenIdEx_.tokenIdExStruct.tokenID,
|
||||
"ohos.permission.CAMERA", Security::AccessToken::PERMISSION_USER_FIXED);
|
||||
if (ret != 0) {
|
||||
DHLOGE("DCameraClient Constructor grant permission failed, dhId: %s", GetAnonyString(dhId).c_str());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DCameraClient::~DCameraClient()
|
||||
@@ -58,7 +43,6 @@ DCameraClient::~DCameraClient()
|
||||
if (isInit_) {
|
||||
UnInit();
|
||||
}
|
||||
(void)Security::AccessToken::AccessTokenKit::DeleteToken(tokenIdEx_.tokenIdExStruct.tokenID);
|
||||
}
|
||||
|
||||
int32_t DCameraClient::Init()
|
||||
|
||||
@@ -35,21 +35,6 @@ DCameraClient::DCameraClient(const std::string& dhId)
|
||||
DHLOGI("DCameraClientCommon Constructor dhId: %s", GetAnonyString(dhId).c_str());
|
||||
cameraId_ = dhId.substr(CAMERA_ID_PREFIX.size());
|
||||
isInit_ = false;
|
||||
|
||||
tokenIdEx_ = Security::AccessToken::AccessTokenKit::AllocHapToken(HAP_INFO_PARAMS, HAP_POLICY_PARAMS);
|
||||
if (tokenIdEx_.tokenIdExStruct.tokenID == 0) {
|
||||
DHLOGE("DCameraClientCommon Constructor alloc tokenId failed, dhId: %s", GetAnonyString(dhId).c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
(void)SetSelfTokenID(tokenIdEx_.tokenIdExStruct.tokenID);
|
||||
|
||||
int32_t ret = Security::AccessToken::AccessTokenKit::GrantPermission(tokenIdEx_.tokenIdExStruct.tokenID,
|
||||
"ohos.permission.CAMERA", Security::AccessToken::PERMISSION_USER_FIXED);
|
||||
if (ret != 0) {
|
||||
DHLOGE("DCameraClientCommon Constructor grant permission failed, dhId: %s", GetAnonyString(dhId).c_str());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DCameraClient::~DCameraClient()
|
||||
@@ -57,7 +42,6 @@ DCameraClient::~DCameraClient()
|
||||
if (isInit_) {
|
||||
UnInit();
|
||||
}
|
||||
(void)Security::AccessToken::AccessTokenKit::DeleteToken(tokenIdEx_.tokenIdExStruct.tokenID);
|
||||
}
|
||||
|
||||
int32_t DCameraClient::Init()
|
||||
|
||||
+12
-14
@@ -12,9 +12,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
import("//build/test.gni")
|
||||
import(
|
||||
"//foundation/distributedhardware/distributedcamera/distributedcamera.gni")
|
||||
|
||||
import("//foundation/distributedhardware/distributedcamera/distributedcamera.gni")
|
||||
module_out_path = "distributed_camera/dcamera_client_test"
|
||||
|
||||
config("module_private_config") {
|
||||
@@ -53,28 +51,28 @@ config("module_private_config") {
|
||||
ohos_unittest("DCameraClientTest") {
|
||||
module_out_path = module_out_path
|
||||
|
||||
sources = [ "dcamera_client_test.cpp" ]
|
||||
sources = [
|
||||
"dcamera_client_test.cpp"
|
||||
]
|
||||
|
||||
configs = [ ":module_private_config" ]
|
||||
|
||||
deps = [
|
||||
"${camerastandard_path}/frameworks/native/camera:camera_framework",
|
||||
"${camerastandard_path}/frameworks/native/metadata:metadata",
|
||||
"${common_path}:distributed_camera_utils",
|
||||
"${fwk_utils_path}:distributedhardwareutils",
|
||||
"${graphicstandard_path}:libsurface",
|
||||
"${services_path}/cameraservice/cameraoperator/client:distributed_camera_client",
|
||||
"${services_path}/cameraservice/sinkservice:distributed_camera_sink",
|
||||
"//third_party/googletest:gtest_main",
|
||||
"//third_party/jsoncpp:jsoncpp",
|
||||
"//utils/native/base:utils",
|
||||
"${fwk_utils_path}:distributedhardwareutils",
|
||||
"${common_path}:distributed_camera_utils",
|
||||
"${graphicstandard_path}:libsurface",
|
||||
"${camerastandard_path}/frameworks/native/camera:camera_framework",
|
||||
"${camerastandard_path}/frameworks/native/metadata:metadata",
|
||||
"${services_path}/cameraservice/cameraoperator/client:distributed_camera_client",
|
||||
"${services_path}/cameraservice/sinkservice:distributed_camera_sink"
|
||||
]
|
||||
|
||||
external_deps = [
|
||||
"access_token:libaccesstoken_sdk",
|
||||
"access_token:libtoken_setproc",
|
||||
"eventhandler:libeventhandler",
|
||||
"hiviewdfx_hilog_native:libhilog",
|
||||
"eventhandler:libeventhandler",
|
||||
"ipc:ipc_core",
|
||||
"samgr_standard:samgr_proxy",
|
||||
]
|
||||
|
||||
+2
-2
@@ -57,7 +57,6 @@ const int32_t TEST_HEIGHT = 1080;
|
||||
const int32_t TEST_FORMAT_3 = 3;
|
||||
const int32_t TEST_FORMAT_4 = 4;
|
||||
const int32_t TEST_SLEEP_SEC = 2;
|
||||
const std::string TEST_CAMERA_ID = "Camera_device@3.5/legacy/1";
|
||||
|
||||
class DCameraClientTest : public testing::Test {
|
||||
public:
|
||||
@@ -86,7 +85,8 @@ void DCameraClientTest::TearDownTestCase(void)
|
||||
void DCameraClientTest::SetUp(void)
|
||||
{
|
||||
DHLOGI("DCameraClientTest::SetUp");
|
||||
client_ = std::make_shared<DCameraClient>(TEST_CAMERA_ID);
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
client_ = std::make_shared<DCameraClient>(cameras[0]);
|
||||
|
||||
photoInfo_false_ = std::make_shared<DCameraCaptureInfo>();
|
||||
photoInfo_false_->width_ = TEST_WIDTH;
|
||||
|
||||
@@ -117,8 +117,6 @@ ohos_shared_library("distributed_camera_sink") {
|
||||
]
|
||||
|
||||
external_deps = [
|
||||
"access_token:libaccesstoken_sdk",
|
||||
"access_token:libtoken_setproc",
|
||||
"eventhandler:libeventhandler",
|
||||
"hiviewdfx_hilog_native:libhilog",
|
||||
"ipc:ipc_core",
|
||||
|
||||
+6
-4
@@ -46,7 +46,7 @@ public:
|
||||
std::shared_ptr<ICameraSinkAccessControl> accessControl_;
|
||||
};
|
||||
std::string g_testDeviceIdController;
|
||||
const std::string TEST_DH_ID = "Camera_device@3.5/legacy/1";
|
||||
|
||||
const std::string SESSION_FLAG_CONTINUE = "dataContinue";
|
||||
const std::string SESSION_FLAG_SNAPSHOT = "dataSnapshot";
|
||||
const std::string TEST_DEVICE_ID_EMPTY = "";
|
||||
@@ -103,7 +103,8 @@ std::vector<DCameraIndex> g_testCamIndex;
|
||||
void DCameraSinkControllerTest::SetUpTestCase(void)
|
||||
{
|
||||
GetLocalDeviceNetworkId(g_testDeviceIdController);
|
||||
g_testCamIndex.push_back(DCameraIndex(g_testDeviceIdController, TEST_DH_ID));
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
g_testCamIndex.push_back(DCameraIndex(g_testDeviceIdController, cameras[0]));
|
||||
}
|
||||
|
||||
void DCameraSinkControllerTest::TearDownTestCase(void)
|
||||
@@ -115,11 +116,12 @@ void DCameraSinkControllerTest::SetUp(void)
|
||||
accessControl_ = std::make_shared<DCameraSinkAccessControl>();
|
||||
controller_ = std::make_shared<DCameraSinkController>(accessControl_);
|
||||
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
controller_->channel_ = std::make_shared<MockCameraChannel>();
|
||||
controller_->operator_ = std::make_shared<MockCameraOperator>();
|
||||
controller_->output_ = std::make_shared<MockDCameraSinkOutput>(TEST_DH_ID, controller_->operator_);
|
||||
controller_->output_ = std::make_shared<MockDCameraSinkOutput>(cameras[0], controller_->operator_);
|
||||
controller_->srcDevId_ = g_testDeviceIdController;
|
||||
controller_->dhId_ = TEST_DH_ID;
|
||||
controller_->dhId_ = cameras[0];
|
||||
}
|
||||
|
||||
void DCameraSinkControllerTest::TearDown(void)
|
||||
|
||||
+3
-2
@@ -40,7 +40,7 @@ public:
|
||||
std::shared_ptr<DCameraSinkDataProcess> dataProcess_;
|
||||
std::shared_ptr<ICameraChannel> channel_;
|
||||
};
|
||||
const std::string TEST_DH_ID = "Camera_device@3.5/legacy/1";
|
||||
|
||||
const std::string TEST_STRING = "test_string";
|
||||
const int32_t TEST_WIDTH = 1080;
|
||||
const int32_t TEST_HEIGHT = 1920;
|
||||
@@ -96,7 +96,8 @@ void DCameraSinkDataProcessTest::TearDownTestCase(void)
|
||||
void DCameraSinkDataProcessTest::SetUp(void)
|
||||
{
|
||||
channel_ = std::make_shared<MockCameraChannel>();
|
||||
dataProcess_ = std::make_shared<DCameraSinkDataProcess>(TEST_DH_ID, channel_);
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
dataProcess_ = std::make_shared<DCameraSinkDataProcess>(cameras[0], channel_);
|
||||
|
||||
dataProcess_->pipeline_ = std::make_shared<MockDataProcessPipeline>();
|
||||
dataProcess_->captureInfo_ = g_testCaptureInfoContinuousNeedEncode;
|
||||
|
||||
+3
-2
@@ -43,7 +43,7 @@ public:
|
||||
|
||||
std::shared_ptr<DCameraSinkDev> dev_;
|
||||
};
|
||||
const std::string TEST_CAMERA_DH_ID_0 = "Camera_device@3.5/legacy/1";
|
||||
|
||||
const std::string TEST_PARAMETER = "";
|
||||
std::string g_testCameraInfo = "";
|
||||
|
||||
@@ -75,7 +75,8 @@ void DCameraSinkDevTest::TearDownTestCase(void)
|
||||
|
||||
void DCameraSinkDevTest::SetUp(void)
|
||||
{
|
||||
dev_ = std::make_shared<DCameraSinkDev>(TEST_CAMERA_DH_ID_0);
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
dev_ = std::make_shared<DCameraSinkDev>(cameras[0]);
|
||||
|
||||
dev_->accessControl_ = std::make_shared<DCameraSinkAccessControl>();
|
||||
dev_->controller_ = std::make_shared<MockDCameraSinkController>(dev_->accessControl_);
|
||||
|
||||
+3
-2
@@ -46,7 +46,7 @@ public:
|
||||
std::shared_ptr<ICameraChannel> channel_;
|
||||
std::shared_ptr<ICameraSinkDataProcess> dataProcess_;
|
||||
};
|
||||
const std::string TEST_DH_ID = "Camera_device@3.5/legacy/1";
|
||||
|
||||
const std::string SESSION_FLAG_CONTINUE = "dataContinue";
|
||||
const std::string SESSION_FLAG_SNAPSHOT = "dataSnapshot";
|
||||
const int32_t TEST_WIDTH = 1080;
|
||||
@@ -114,8 +114,9 @@ void DCameraSinkOutputTest::TearDownTestCase(void)
|
||||
|
||||
void DCameraSinkOutputTest::SetUp(void)
|
||||
{
|
||||
std::vector<std::string> cameras = DCameraHandler::GetInstance().GetCameras();
|
||||
operator_ = std::make_shared<MockCameraOperator>();
|
||||
output_ = std::make_shared<DCameraSinkOutput>(TEST_DH_ID, operator_);
|
||||
output_ = std::make_shared<DCameraSinkOutput>(cameras[0], operator_);
|
||||
channel_ = std::make_shared<MockCameraChannel>();
|
||||
dataProcess_ = std::make_shared<MockDCameraSinkDataProcess>(channel_);
|
||||
output_->channels_.emplace(SNAPSHOT_FRAME, channel_);
|
||||
|
||||
Reference in New Issue
Block a user