提交 d12b4c5a 编写于 作者: H heyingjiao

Description:add getCallingFullTokenId and GetFirstFullTokenId test

Feature or Bugfix:Feature
Binary Source: No
Signed-off-by: Nheyingjiao <heyingjiao@huawei.com>
上级 4923df2e
......@@ -376,7 +376,7 @@ bool IPCObjectProxy::RemoveDeathRecipient(const sptr<DeathRecipient> &recipient)
#endif
return status && dbinderStatus;
}
return false;
return recipientErased;
}
void IPCObjectProxy::SendObituary()
......
......@@ -188,6 +188,34 @@ HWTEST_F(IPCNativeUnitTest, GetCallingTokenIDTest001, TestSize.Level1)
EXPECT_NE(token, INVAL_TOKEN_ID);
}
/**
* @tc.name: GetCallingFullTokenIDTest001
* @tc.desc: Verify the GetCallingFullTokenID function
* @tc.type: FUNC
*/
HWTEST_F(IPCNativeUnitTest, GetCallingFullTokenIDTest001, TestSize.Level1)
{
sptr<IPCObjectStub> testStub = new IPCObjectStub(u"testStub");
uint64_t token1 = testStub->GetCallingFullTokenID();
uint64_t token2 = static_cast<uint64_t>(testStub->GetCallingTokenID());
EXPECT_NE(token1, INVAL_TOKEN_ID);
EXPECT_EQ(token1, token2);
}
/**
* @tc.name: GetCallingFullTokenIDTest002
* @tc.desc: Verify the GetCallingFullTokenID function
* @tc.type: FUNC
*/
HWTEST_F(IPCNativeUnitTest, GetCallingFullTokenIDTest002, TestSize.Level1)
{
sptr<IPCObjectStub> testStub = new IPCObjectStub(u"testStub");
uint64_t token1 = testStub->GetCallingFullTokenID();
uint64_t token2 = IPCSkeleton::GetSelfTokenID();
EXPECT_NE(token1, INVAL_TOKEN_ID);
EXPECT_EQ(token1, token2);
}
/**
* @tc.name: GetFirstTokenIDTest001
* @tc.desc: Verify the GetFirstTokenID function
......@@ -200,6 +228,17 @@ HWTEST_F(IPCNativeUnitTest, GetFirstTokenIDTest001, TestSize.Level1)
EXPECT_EQ(token, INVAL_TOKEN_ID);
}
/**
* @tc.name: GetFirstFullTokenIDTest001
* @tc.desc: Verify the GetFirstFullTokenID function
* @tc.type: FUNC
*/
HWTEST_F(IPCNativeUnitTest, GetFirstFullTokenIDTest001, TestSize.Level1)
{
sptr<IPCObjectStub> testStub = new IPCObjectStub(u"testStub");
uint64_t token = testStub->GetFirstFullTokenID();
EXPECT_EQ(token, INVAL_TOKEN_ID);
}
/**
* @tc.name: GetObjectTypeTest001
......@@ -738,8 +777,8 @@ HWTEST_F(IPCNativeUnitTest, AccessTokenid001, TestSize.Level1)
if (service->IsProxyObject()) {
ZLOGD(LABEL, "Got Proxy node");
TestServiceProxy *proxy = static_cast<TestServiceProxy *>(testService.GetRefPtr());
int ret = proxy->TestAccessTokenID(3571);
EXPECT_EQ(ret, 0);
EXPECT_EQ(proxy->TestAccessTokenID64(3560, 3571), 0);
EXPECT_EQ(proxy->TestAccessTokenID(3571), 0);
} else {
ZLOGE(LABEL, "Got Stub node");
}
......
......@@ -46,6 +46,7 @@ public:
void TestAsyncDumpService() override;
int TestNestingSend(int sendCode, int &replyCode) override;
int TestAccessTokenID(int32_t ftoken_expected) override;
int TestAccessTokenID64(uint64_t token_expected, uint64_t ftoken_expected) override;
int TestMessageParcelAppend(MessageParcel &dst, MessageParcel &src) override;
int TestMessageParcelAppendWithIpc(MessageParcel &dst, MessageParcel &src,
MessageParcel &reply, bool withObject) override;
......
......@@ -49,6 +49,7 @@ public:
TRANS_ID_ACCESS_TOKENID = 18,
TRANS_MESSAGE_PARCEL_ADDPED = 19,
TRANS_MESSAGE_PARCEL_ADDPED_WITH_OBJECT = 20,
TRANS_ID_ACCESS_TOKENID_64 = 21,
};
public:
virtual int TestSyncTransaction(int data, int &reply, int delayTime = 0) = 0;
......@@ -69,6 +70,7 @@ public:
virtual void TestAsyncDumpService() = 0;
virtual int TestNestingSend(int sendCode, int &replyCode) = 0;
virtual int TestAccessTokenID(int32_t ftoken_expected) = 0;
virtual int TestAccessTokenID64(uint64_t token_expected, uint64_t ftoken_expected) = 0;
virtual int TestMessageParcelAppend(MessageParcel &dst, MessageParcel &src) = 0;
virtual int TestMessageParcelAppendWithIpc(MessageParcel &dst, MessageParcel &src,
MessageParcel &reply, bool withObject) = 0;
......@@ -110,6 +112,7 @@ public:
void TestAsyncDumpService() override;
int TestNestingSend(int sendCode, int &replyCode) override;
int TestAccessTokenID(int32_t ftoken_expected) override;
int TestAccessTokenID64(uint64_t token_expected, uint64_t ftoken_expected) override;
int TestMessageParcelAppend(MessageParcel &dst, MessageParcel &src) override;
int TestMessageParcelAppendWithIpc(MessageParcel &dst, MessageParcel &src,
MessageParcel &reply, bool withObject) override;
......
......@@ -192,6 +192,13 @@ int TestService::TestAccessTokenID(int32_t ftoken_expected)
return 0;
}
int TestService::TestAccessTokenID64(uint64_t token_expected, uint64_t ftoken_expected)
{
(void)token_expected;
(void)ftoken_expected;
return 0;
}
int TestService::TestMessageParcelAppend(MessageParcel &dst, MessageParcel &src)
{
(void)dst;
......
......@@ -14,6 +14,7 @@
*/
#include "test_service_skeleton.h"
#include <cinttypes>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
......@@ -335,6 +336,72 @@ int RpcSetFirstCallerTokenID(uint64_t tokenID)
return ACCESS_TOKEN_OK;
}
int TestServiceProxy::TestAccessTokenID64(uint64_t token_expected, uint64_t ftoken_expected)
{
MessageOption option;
MessageParcel dataParcel, replyParcel1, replyParcel2;
uint64_t token = IPCSkeleton::GetCallingFullTokenID();
uint64_t ftoken = IPCSkeleton::GetFirstFullTokenID();
uint64_t tokenSelf = IPCSkeleton::GetSelfTokenID();
uint64_t oldTokenSelf = tokenSelf;
int32_t ret = 0;
if (token != tokenSelf) {
ZLOGE(LABEL, "token != tokenSelf");
return -1;
}
if (ftoken != 0) {
ZLOGE(LABEL, "ftoken != 0");
return -1;
}
if (RpcSetFirstCallerTokenID(ftoken_expected) != 0) {
ZLOGE(LABEL, "RpcSetFirstCallerTokenID err");
ret = -1;
goto ERR;
}
if (RpcGetFirstCallerTokenID() != ftoken_expected) {
ZLOGE(LABEL, "RpcGetFirstCallerTokenID err");
ret = -1;
goto ERR;
}
if (RpcSetSelfTokenID(token_expected) != 0) {
ZLOGE(LABEL, "RpcSetSelfTokenID err");
ret = -1;
goto ERR;
}
if (RpcGetSelfTokenID() != token_expected) {
ZLOGE(LABEL, "RpcGetSelfTokenID err");
ret = -1;
goto ERR;
}
ret = Remote()->SendRequest(TRANS_ID_ACCESS_TOKENID_64, dataParcel, replyParcel1, option);
if (ret != ERR_NONE) {
ZLOGE(LABEL, "SendRequest ret = %{public}d", ret);
ret = -1;
goto ERR;
}
token = replyParcel1.ReadUint64();
ftoken = replyParcel1.ReadUint64();
if (token != token_expected) {
ZLOGE(LABEL, "token != token_expected, token:%{public}" PRIu64, token);
ret = -1;
goto ERR;
}
if (ftoken != ftoken_expected) {
ZLOGE(LABEL, "ftoken != ftoken_expected, ftoken:%{public}" PRIu64, ftoken);
ret = -1;
goto ERR;
}
ERR:
RpcSetFirstCallerTokenID(0);
RpcSetSelfTokenID(oldTokenSelf);
return ret;
}
int TestServiceProxy::TestAccessTokenID(int32_t ftoken_expected)
{
MessageOption option;
......@@ -674,6 +741,15 @@ int TestServiceStub::OnRemoteRequest(uint32_t code,
reply.WriteInt32(ftoken);
break;
}
case TRANS_ID_ACCESS_TOKENID_64: {
uint64_t token = IPCSkeleton::GetCallingFullTokenID();
uint64_t ftoken = IPCSkeleton::GetFirstFullTokenID();
ZLOGE(LABEL, "server GetCallingFullTokenID:%{public}" PRIu64, token);
ZLOGE(LABEL, "server GetFirstFullTokenID:%{public}" PRIu64, ftoken);
reply.WriteUint64(token);
reply.WriteUint64(ftoken);
break;
}
case TRANS_MESSAGE_PARCEL_ADDPED: {
reply.WriteInt32(data.ReadInt32());
reply.WriteInt32(data.ReadInt32());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册