From c57e5d498508910a8de6151ddf546c3de2d03bcd Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Mon, 6 Dec 2021 16:19:12 +0800 Subject: [PATCH] TD-10431 acct test --- include/common/taosmsg.h | 21 ++-- source/dnode/mgmt/impl/test/CMakeLists.txt | 3 +- .../dnode/mgmt/impl/test/acct/CMakeLists.txt | 29 +++++ source/dnode/mgmt/impl/test/acct/acct.cpp | 112 ++++++++++++++++++ 4 files changed, 151 insertions(+), 14 deletions(-) create mode 100644 source/dnode/mgmt/impl/test/acct/CMakeLists.txt create mode 100644 source/dnode/mgmt/impl/test/acct/acct.cpp diff --git a/include/common/taosmsg.h b/include/common/taosmsg.h index 300de7b698..ad68c0bfe1 100644 --- a/include/common/taosmsg.h +++ b/include/common/taosmsg.h @@ -360,10 +360,10 @@ typedef struct { } SConnectMsg; typedef struct SEpSet { - int8_t inUse; - int8_t numOfEps; - uint16_t port[TSDB_MAX_REPLICA]; - char fqdn[TSDB_MAX_REPLICA][TSDB_FQDN_LEN]; + int8_t inUse; + int8_t numOfEps; + uint16_t port[TSDB_MAX_REPLICA]; + char fqdn[TSDB_MAX_REPLICA][TSDB_FQDN_LEN]; } SEpSet; typedef struct { @@ -383,14 +383,9 @@ typedef struct { int32_t maxUsers; int32_t maxDbs; int32_t maxTimeSeries; - int32_t maxConnections; int32_t maxStreams; - int32_t maxPointsPerSecond; - int64_t maxStorage; // In unit of GB - int64_t maxQueryTime; // In unit of hour - int64_t maxInbound; - int64_t maxOutbound; - int8_t accessState; // Configured only by command + int64_t maxStorage; // In unit of GB + int32_t accessState; // Configured only by command } SCreateAcctMsg, SAlterAcctMsg; typedef struct { @@ -398,8 +393,8 @@ typedef struct { } SDropUserMsg, SDropAcctMsg; typedef struct { - char user[TSDB_USER_LEN]; - char pass[TSDB_KEY_LEN]; + char user[TSDB_USER_LEN]; + char pass[TSDB_KEY_LEN]; } SCreateUserMsg, SAlterUserMsg; typedef struct { diff --git a/source/dnode/mgmt/impl/test/CMakeLists.txt b/source/dnode/mgmt/impl/test/CMakeLists.txt index 84edabfc58..836de04735 100644 --- a/source/dnode/mgmt/impl/test/CMakeLists.txt +++ b/source/dnode/mgmt/impl/test/CMakeLists.txt @@ -1,2 +1,3 @@ +add_subdirectory(acct) add_subdirectory(profile) -add_subdirectory(show) \ No newline at end of file +add_subdirectory(show) diff --git a/source/dnode/mgmt/impl/test/acct/CMakeLists.txt b/source/dnode/mgmt/impl/test/acct/CMakeLists.txt new file mode 100644 index 0000000000..3e963df2e6 --- /dev/null +++ b/source/dnode/mgmt/impl/test/acct/CMakeLists.txt @@ -0,0 +1,29 @@ +add_executable(dndTestAcct "") + +target_sources(dndTestAcct + PRIVATE + "acct.cpp" + "../sut/deploy.cpp" +) + +target_link_libraries( + dndTestAcct + PUBLIC dnode + PUBLIC util + PUBLIC os + PUBLIC gtest_main +) + +target_include_directories(dndTestAcct + PUBLIC + "${CMAKE_SOURCE_DIR}/include/server/dnode/mgmt" + "${CMAKE_CURRENT_SOURCE_DIR}/../../inc" + "${CMAKE_CURRENT_SOURCE_DIR}/../sut" +) + +enable_testing() + +add_test( + NAME dndTestAcct + COMMAND dndTestAcct +) diff --git a/source/dnode/mgmt/impl/test/acct/acct.cpp b/source/dnode/mgmt/impl/test/acct/acct.cpp new file mode 100644 index 0000000000..cda44a3be8 --- /dev/null +++ b/source/dnode/mgmt/impl/test/acct/acct.cpp @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include "deploy.h" + +class DndTestAcct : public ::testing::Test { + protected: + void SetUp() override {} + void TearDown() override {} + + static void SetUpTestSuite() { + const char* user = "root"; + const char* pass = "taosdata"; + const char* path = "/tmp/dndTestAcct"; + const char* fqdn = "localhost"; + uint16_t port = 9520; + + pServer = createServer(path, fqdn, port); + ASSERT(pServer); + pClient = createClient(user, pass, fqdn, port); + } + + static void TearDownTestSuite() { + dropServer(pServer); + dropClient(pClient); + } + + static SServer* pServer; + static SClient* pClient; + static int32_t connId; +}; + +SServer* DndTestAcct::pServer; +SClient* DndTestAcct::pClient; +int32_t DndTestAcct::connId; + +TEST_F(DndTestAcct, CreateAcct) { + ASSERT_NE(pClient, nullptr); + + SCreateAcctMsg* pReq = (SCreateAcctMsg*)rpcMallocCont(sizeof(SCreateAcctMsg)); + + SRpcMsg rpcMsg = {0}; + rpcMsg.pCont = pReq; + rpcMsg.contLen = sizeof(SCreateAcctMsg); + rpcMsg.msgType = TSDB_MSG_TYPE_CREATE_ACCT; + + sendMsg(pClient, &rpcMsg); + SRpcMsg* pMsg = pClient->pRsp; + ASSERT_NE(pMsg, nullptr); + ASSERT_EQ(pMsg->code, TSDB_CODE_MND_MSG_NOT_PROCESSED); +} + +TEST_F(DndTestAcct, AlterAcct) { + ASSERT_NE(pClient, nullptr); + + SAlterAcctMsg* pReq = (SAlterAcctMsg*)rpcMallocCont(sizeof(SAlterAcctMsg)); + + SRpcMsg rpcMsg = {0}; + rpcMsg.pCont = pReq; + rpcMsg.contLen = sizeof(SAlterAcctMsg); + rpcMsg.msgType = TSDB_MSG_TYPE_ALTER_ACCT; + + sendMsg(pClient, &rpcMsg); + SRpcMsg* pMsg = pClient->pRsp; + ASSERT_NE(pMsg, nullptr); + ASSERT_EQ(pMsg->code, TSDB_CODE_MND_MSG_NOT_PROCESSED); +} + +TEST_F(DndTestAcct, DropAcct) { + ASSERT_NE(pClient, nullptr); + + SDropAcctMsg* pReq = (SDropAcctMsg*)rpcMallocCont(sizeof(SDropAcctMsg)); + + SRpcMsg rpcMsg = {0}; + rpcMsg.pCont = pReq; + rpcMsg.contLen = sizeof(SDropAcctMsg); + rpcMsg.msgType = TSDB_MSG_TYPE_DROP_ACCT; + + sendMsg(pClient, &rpcMsg); + SRpcMsg* pMsg = pClient->pRsp; + ASSERT_NE(pMsg, nullptr); + ASSERT_EQ(pMsg->code, TSDB_CODE_MND_MSG_NOT_PROCESSED); +} + +TEST_F(DndTestAcct, ShowAcct) { + ASSERT_NE(pClient, nullptr); + + SShowMsg* pReq = (SShowMsg*)rpcMallocCont(sizeof(SShowMsg)); + pReq->type = TSDB_MGMT_TABLE_ACCT; + + SRpcMsg rpcMsg = {0}; + rpcMsg.pCont = pReq; + rpcMsg.contLen = sizeof(SShowMsg); + rpcMsg.msgType = TSDB_MSG_TYPE_SHOW; + + sendMsg(pClient, &rpcMsg); + SRpcMsg* pMsg = pClient->pRsp; + ASSERT_NE(pMsg, nullptr); + ASSERT_EQ(pMsg->code, TSDB_CODE_MND_INVALID_MSG_TYPE); +} \ No newline at end of file -- GitLab