diff --git a/adapter/uhdf2/host/test/unittest/devhost_test.cpp b/adapter/uhdf2/host/test/unittest/devhost_test.cpp index 81384ea0165fb04518d81382d4fd8e479b4e9b5a..0a4d51896f531fabf60814ac284f27e88d84c55c 100644 --- a/adapter/uhdf2/host/test/unittest/devhost_test.cpp +++ b/adapter/uhdf2/host/test/unittest/devhost_test.cpp @@ -78,7 +78,7 @@ HWTEST_F(DevHostTest, DevHostDevMgrServiceProxyTest, TestSize.Level1) ASSERT_TRUE(ret != HDF_SUCCESS); const char *name = "test_svcName"; ret = instance->LoadDevice(instance, name); - ASSERT_TRUE(ret == HDF_SUCCESS); + ASSERT_TRUE(ret != HDF_SUCCESS); struct DevmgrServiceProxy *proxy = reinterpret_cast(object); HdfRemoteServiceRecycle(proxy->remote); diff --git a/adapter/uhdf2/host/test/unittest/devmgr_test.cpp b/adapter/uhdf2/host/test/unittest/devmgr_test.cpp index 7678e47bceacbb49d8758f4722c2f13b1545591a..8179b8eb60cda24dc16bc8dce2c1d73e3eb00952 100644 --- a/adapter/uhdf2/host/test/unittest/devmgr_test.cpp +++ b/adapter/uhdf2/host/test/unittest/devmgr_test.cpp @@ -103,7 +103,7 @@ HWTEST_F(DevMgrTest, DriverUnLoaderTest, TestSize.Level1) ASSERT_TRUE(devmgr != nullptr); int ret = devmgr->UnloadDevice(devmgr, TEST_SERVICE_NAME); - ASSERT_EQ(ret, HDF_SUCCESS); + ASSERT_TRUE(ret != HDF_SUCCESS); uint32_t cnt = 0; struct HdfRemoteService *sampleService = servmgr->GetService(servmgr, TEST_SERVICE_NAME); diff --git a/adapter/uhdf2/manager/src/devmgr_service_stub.c b/adapter/uhdf2/manager/src/devmgr_service_stub.c index ad7b82989bf7f0f7a2e35fe7e2ea79518afef818..ab4d6d6b2c72204a65a0cfccb9c6b001718afa31 100644 --- a/adapter/uhdf2/manager/src/devmgr_service_stub.c +++ b/adapter/uhdf2/manager/src/devmgr_service_stub.c @@ -152,7 +152,7 @@ int32_t DevmgrServiceStubDispatch(struct HdfRemoteService *stub, int code, struc HDF_LOGE("%{public}s devmgr service stub dispach failed, cmd id is %{public}d, ret = %{public}d", __func__, code, ret); } - return HDF_SUCCESS; + return ret; } static void RemoveModule(const char *module) diff --git a/framework/core/manager/src/devmgr_service.c b/framework/core/manager/src/devmgr_service.c index e5d115b48492f799f888668246601eb2f11b107b..63ee995898db4db7b00961037bcce5fbd80e2b74 100644 --- a/framework/core/manager/src/devmgr_service.c +++ b/framework/core/manager/src/devmgr_service.c @@ -47,7 +47,7 @@ static bool DevmgrServiceDynamicDevInfoFound( return false; } -#define WAIT_HOST_SLEEP_TIME 1 // ms +#define WAIT_HOST_SLEEP_TIME 2 // ms #define WAIT_HOST_SLEEP_CNT 1000 static int DevmgrServiceStartHostProcess(struct DevHostServiceClnt *hostClnt, bool sync, bool dynamic) { @@ -75,6 +75,9 @@ static int DevmgrServiceStartHostProcess(struct DevHostServiceClnt *hostClnt, bo if (waitCount <= 0) { HDF_LOGE("wait host(%{public}s, %{public}d) attach timeout", hostClnt->hostName, hostClnt->hostId); + if (installer->StopDeviceHost != NULL) { + installer->StopDeviceHost(hostClnt->hostId, hostClnt->hostName); + } hostClnt->hostPid = -1; return HDF_ERR_TIMEOUT; }