dsnode.cpp 3.4 KB
Newer Older
S
Shengliang Guan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/**
 * @file dsnode.cpp
 * @author slguan (slguan@taosdata.com)
 * @brief DNODE module snode tests
 * @version 1.0
 * @date 2022-01-05
 *
 * @copyright Copyright (c) 2022
 *
 */

#include "sut.h"

class DndTestSnode : public ::testing::Test {
 protected:
S
Shengliang Guan 已提交
16
  static void SetUpTestSuite() { test.Init("/tmp/dnode_test_snode", 9113); }
S
Shengliang Guan 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
  static void TearDownTestSuite() { test.Cleanup(); }

  static Testbase test;

 public:
  void SetUp() override {}
  void TearDown() override {}
};

Testbase DndTestSnode::test;

TEST_F(DndTestSnode, 01_Create_Snode) {
  {
    int32_t contLen = sizeof(SDCreateSnodeReq);

    SDCreateSnodeReq* pReq = (SDCreateSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(2);

S
Shengliang Guan 已提交
35 36
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_CREATE_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
S
Shengliang Guan 已提交
37
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_INVALID_OPTION);
S
Shengliang Guan 已提交
38 39 40 41 42 43 44 45
  }

  {
    int32_t contLen = sizeof(SDCreateSnodeReq);

    SDCreateSnodeReq* pReq = (SDCreateSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
46 47 48
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_CREATE_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, 0);
S
Shengliang Guan 已提交
49 50 51 52 53 54 55 56
  }

  {
    int32_t contLen = sizeof(SDCreateSnodeReq);

    SDCreateSnodeReq* pReq = (SDCreateSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
57 58 59
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_CREATE_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_ALREADY_DEPLOYED);
S
Shengliang Guan 已提交
60 61 62 63 64 65 66 67 68 69
  }

  test.Restart();

  {
    int32_t contLen = sizeof(SDCreateSnodeReq);

    SDCreateSnodeReq* pReq = (SDCreateSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
70 71 72
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_CREATE_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_ALREADY_DEPLOYED);
S
Shengliang Guan 已提交
73 74 75 76 77 78 79 80 81 82
  }
}

TEST_F(DndTestSnode, 01_Drop_Snode) {
  {
    int32_t contLen = sizeof(SDDropSnodeReq);

    SDDropSnodeReq* pReq = (SDDropSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(2);

S
Shengliang Guan 已提交
83 84
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_DROP_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
S
Shengliang Guan 已提交
85
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_INVALID_OPTION);
S
Shengliang Guan 已提交
86 87 88 89 90 91 92 93
  }

  {
    int32_t contLen = sizeof(SDDropSnodeReq);

    SDDropSnodeReq* pReq = (SDDropSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
94 95 96
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_DROP_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, 0);
S
Shengliang Guan 已提交
97 98 99 100 101 102 103 104
  }

  {
    int32_t contLen = sizeof(SDDropSnodeReq);

    SDDropSnodeReq* pReq = (SDDropSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
105 106 107
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_DROP_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_NOT_DEPLOYED);
S
Shengliang Guan 已提交
108 109 110 111 112 113 114 115 116 117
  }

  test.Restart();

  {
    int32_t contLen = sizeof(SDDropSnodeReq);

    SDDropSnodeReq* pReq = (SDDropSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
118 119 120
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_DROP_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, TSDB_CODE_DND_SNODE_NOT_DEPLOYED);
S
Shengliang Guan 已提交
121 122 123 124 125 126 127 128
  }

  {
    int32_t contLen = sizeof(SDCreateSnodeReq);

    SDCreateSnodeReq* pReq = (SDCreateSnodeReq*)rpcMallocCont(contLen);
    pReq->dnodeId = htonl(1);

S
Shengliang Guan 已提交
129 130 131
    SRpcMsg* pRsp = test.SendReq(TDMT_DND_CREATE_SNODE, pReq, contLen);
    ASSERT_NE(pRsp, nullptr);
    ASSERT_EQ(pRsp->code, 0);
S
Shengliang Guan 已提交
132 133
  }
}