taosdumpTest3.py 12.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
###################################################################
#           Copyright (c) 2016 by TAOS Technologies, Inc.
#                     All rights reserved.
#
#  This file is proprietary and confidential to TAOS Technologies.
#  No part of this file may be reproduced, stored, transmitted,
#  disclosed or used in any form or by any means other than as
#  expressly provided by the written permission from Jianhui Tao
#
###################################################################

# -*- coding: utf-8 -*-

import sys
import os
from util.log import *
from util.cases import *
from util.sql import *
from util.dnodes import *


class TDTestCase:
    def init(self, conn, logSql):
        tdLog.debug("start to execute %s" % __file__)
        tdSql.init(conn.cursor(), logSql)

        self.ts = 1538548685000
        self.numberOfTables = 10000
        self.numberOfRecords = 100

    def checkCommunity(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))
        if ("community" in selfPath):
            return False
        else:
            return True

    def getBuildPath(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))

        if ("community" in selfPath):
            projPath = selfPath[:selfPath.find("community")]
        else:
            projPath = selfPath[:selfPath.find("tests")]

        for root, dirs, files in os.walk(projPath):
            if ("taosdump" in files):
                rootRealPath = os.path.dirname(os.path.realpath(root))
                if ("packaging" not in rootRealPath):
                    buildPath = root[:len(root) - len("/build/bin")]
                    break
        return buildPath

    def run(self):
haoranc's avatar
haoranc 已提交
55 56
        if not os.path.exists("./taosdumptest"):
            os.makedirs("./taosdumptest")
57 58 59 60 61 62 63 64
        if not os.path.exists("./taosdumptest/tmp1"):
            os.makedirs("./taosdumptest/tmp1")
        if not os.path.exists("./taosdumptest/tmp2"):
            os.makedirs("./taosdumptest/tmp2")
        if not os.path.exists("./taosdumptest/tmp3"):
            os.makedirs("./taosdumptest/tmp3")
        if not os.path.exists("./taosdumptest/tmp4"):
            os.makedirs("./taosdumptest/tmp4")
65 66 67 68 69 70
        if not os.path.exists("./taosdumptest/tmp5"):
            os.makedirs("./taosdumptest/tmp5")
        if not os.path.exists("./taosdumptest/tmp6"):
            os.makedirs("./taosdumptest/tmp6")
        if not os.path.exists("./taosdumptest/tmp7"):
            os.makedirs("./taosdumptest/tmp7")
71 72 73 74 75 76 77 78
        buildPath = self.getBuildPath()
        if (buildPath == ""):
            tdLog.exit("taosdump not found!")
        else:
            tdLog.info("taosdump found in %s" % buildPath)
        binPath = buildPath + "/build/bin/"

        # create db1 , one stables and one table ;  create general tables
79 80
        tdSql.execute("drop database if  exists dp1")
        tdSql.execute("drop database  if exists dp2")
81 82 83 84 85 86 87 88 89 90
        tdSql.execute("create database if not exists dp1")
        tdSql.execute("use dp1")
        tdSql.execute("create stable st0(ts timestamp, c1 int, c2 nchar(10)) tags(t1 int)")
        tdSql.execute("create  table st0_0 using st0 tags(0) st0_1 using st0 tags (1) ")
        tdSql.execute("insert into st0_0 values(1614218412000,8537,'R')(1614218422000,8538,'E')")
        tdSql.execute("insert into st0_1 values(1614218413000,1537,'A')(1614218423000,1538,'D')")
        tdSql.execute("create table  if not exists gt0 (ts timestamp, c0 int, c1 float)  ")
        tdSql.execute("create table  if not exists gt1 (ts timestamp, c0 int, c1 double)  ")
        tdSql.execute("insert into gt0 values(1614218412000,637,8.861)")
        tdSql.execute("insert into gt1 values(1614218413000,638,8.862)")
91

haoranc's avatar
haoranc 已提交
92 93
        # create db1 , three stables:stb0,include ctables stb0_0 \ stb0_1,stb1 include ctables stb1_0 and stb1_1 
        # \stb3,include ctables stb3_0 and stb3_1 
94
        # create general three tables gt0 gt1 gt2
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
        tdSql.execute("create database if not  exists dp2")
        tdSql.execute("use dp2")
        tdSql.execute("create stable st0(ts timestamp, c01 int, c02 nchar(10)) tags(t1 int)")
        tdSql.execute("create table st0_0 using st0 tags(0) st0_1 using st0 tags(1) ")
        tdSql.execute("insert into st0_0 values(1614218412000,8600,'R')(1614218422000,8600,'E')")
        tdSql.execute("insert into st0_1 values(1614218413000,8601,'A')(1614218423000,8601,'D')")
        tdSql.execute("create stable st1(ts timestamp, c11 float, c12 nchar(10)) tags(t1 int)")
        tdSql.execute("create table st1_0 using st1 tags(0) st1_1 using st1 tags(1) ")
        tdSql.execute("insert into st1_0 values(1614218412000,8610.1,'R')(1614218422000,8610.1,'E')")
        tdSql.execute("insert into st1_1 values(1614218413000,8611.2,'A')(1614218423000,8611.1,'D')")
        tdSql.execute("create stable st2(ts timestamp, c21 float, c22 nchar(10)) tags(t1 int)")
        tdSql.execute("create table st2_0 using st2 tags(0) st2_1 using st2 tags(1) ")
        tdSql.execute("insert into st2_0 values(1614218412000,8620.3,'R')(1614218422000,8620.3,'E')")
        tdSql.execute("insert into st2_1 values(1614218413000,8621.4,'A')(1614218423000,8621.4,'D')")
        tdSql.execute("create table  if not exists gt0 (ts timestamp, c00 int, c01 float)  ")
        tdSql.execute("create table  if not exists gt1 (ts timestamp, c10 int, c11 double)  ")
        tdSql.execute("create table  if not exists gt2 (ts timestamp, c20 int, c21 float)  ")
112 113 114 115 116 117 118 119 120 121 122 123
        tdSql.execute("insert into gt0 values(1614218412700,8637,78.86155)")
        tdSql.execute("insert into gt1 values(1614218413800,8638,78.862020199)")
        tdSql.execute("insert into gt2 values(1614218413900,8639,78.863)")

        # create 
        tdSql.execute("create database if not exists dp3 precision 'ns'")
        tdSql.execute("use dp3")
        tdSql.execute("create stable st0(ts timestamp, c01 int, c02 nchar(10)) tags(t1 int)")
        tdSql.execute("create table st0_0 using st0 tags(0) st0_1 using st0 tags(1) ")
        tdSql.execute("insert into st0_0 values(1614218412000000001,8600,'R')(1614218422000000002,8600,'E')")
        tdSql.execute("insert into st0_1 values(1614218413000000001,8601,'A')(1614218423000000002,8601,'D')")

124 125 126 127 128 129

        # tdSql.execute("insert into t0 values(1614218422000,8638,'R')")
        os.system("rm -rf ./taosdumptest/tmp1/*")
        os.system("rm -rf ./taosdumptest/tmp2/*")
        os.system("rm -rf ./taosdumptest/tmp3/*")
        os.system("rm -rf ./taosdumptest/tmp4/*")
130 131
        os.system("rm -rf ./taosdumptest/tmp5/*")

haoranc's avatar
haoranc 已提交
132
        # #  taosdump stable and  general table
133 134 135 136 137 138 139 140 141
        os.system("%staosdump  -o ./taosdumptest/tmp1 -D dp1,dp2  " % binPath)
        os.system("%staosdump  -o ./taosdumptest/tmp2 dp1 st0 gt0  " % binPath)
        os.system("%staosdump  -o ./taosdumptest/tmp3 dp2 st0 st1_0 gt0" % binPath)
        os.system("%staosdump  -o ./taosdumptest/tmp4 dp2 st0 st2 gt0 gt2" % binPath)

        # verify ns 
        os.system("%staosdump  -o ./taosdumptest/tmp6 dp3 st0_0" % binPath)
        assert os.system("%staosdump  -o ./taosdumptest/tmp6 dp3 st0_0 -C ns " % binPath) != 0

haoranc's avatar
haoranc 已提交
142
        # verify -D:--database
143 144
        os.system("%staosdump  -o ./taosdumptest/tmp5  --databases dp1,dp2 " % binPath)
        # verify mixed -D:--database and dbname tbname
145
        assert os.system("%staosdump --databases dp1 -o ./taosdumptest/tmp5 dp2 st0 st1_0 gt0" % binPath) != 0
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293

        #check taosdumptest/tmp1
        tdSql.execute("drop database  dp1")
        tdSql.execute("drop database  dp2")
        os.system("%staosdump -i ./taosdumptest/tmp1 -T 2   " % binPath)
        tdSql.execute("use dp1")
        tdSql.query("show stables")
        tdSql.checkRows(1)
        tdSql.query("show tables")
        tdSql.checkRows(4)
        tdSql.query("select c1 from st0_0 order by ts")
        tdSql.checkData(0,0,8537)
        tdSql.query("select c2 from st0_1 order by ts")
        tdSql.checkData(1,0,"D")
        tdSql.query("select * from gt0")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.000')
        tdSql.checkData(0,1,637)
        tdSql.execute("use dp2")
        tdSql.query("show stables")
        tdSql.checkRows(3)
        tdSql.query("show tables")
        tdSql.checkRows(9)
        tdSql.query("select ts from gt0")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.700')
        tdSql.query("select c10 from gt1")
        tdSql.checkData(0, 0, 8638)
        tdSql.query("select c20 from gt2")
        tdSql.checkData(0, 0, 8639)


        #check taosdumptest/tmp2
        tdSql.execute("drop database  dp1")
        tdSql.execute("drop database  dp2")
        os.system("%staosdump -i ./taosdumptest/tmp2 -T 2   " % binPath)
        tdSql.execute("use dp1")
        tdSql.query("show stables")
        tdSql.checkRows(1)
        tdSql.query("show tables")
        tdSql.checkRows(3)
        tdSql.query("select c1 from st0_0 order by ts")
        tdSql.checkData(0,0,8537)
        tdSql.query("select c2 from st0_1 order by ts")
        tdSql.checkData(1,0,"D")
        tdSql.query("select * from gt0")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.000')
        tdSql.checkData(0,1,637)
        tdSql.error("select count(*) from gt1")
        tdSql.error("use dp2")


        #check taosdumptest/tmp3
        tdSql.execute("drop database  dp1")
        os.system("%staosdump  -i ./taosdumptest/tmp3 -T 2 " % binPath)  
        tdSql.execute("use dp2")
        tdSql.query("show stables")
        tdSql.checkRows(2)
        tdSql.query("show tables")
        tdSql.checkRows(4)
        tdSql.query("select count(*) from st1_0")
        tdSql.checkData(0,0,2)
        tdSql.query("select ts from gt0")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.700')
        tdSql.error("use dp1")
        tdSql.error("select count(*) from st2_0")
        tdSql.error("select count(*) from gt2")

        #check taosdumptest/tmp4
        tdSql.execute("drop database  dp2")
        os.system("%staosdump  -i ./taosdumptest/tmp4 -T 2 " % binPath)  
        tdSql.execute("use dp2")
        tdSql.query("show stables")
        tdSql.checkRows(2)
        tdSql.query("show tables")
        tdSql.checkRows(6)
        tdSql.query("select c20 from gt2")
        tdSql.checkData(0, 0, 8639)
        tdSql.query("select count(*) from st0_0")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st0_1")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st2_1")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st2_0")
        tdSql.checkData(0, 0, 2)
        tdSql.error("use dp1")
        tdSql.error("select count(*) from st1_0")
        tdSql.error("select count(*) from st1_1")
        tdSql.error("select count(*) from gt3")


        #check taosdumptest/tmp5
        tdSql.execute("drop database  dp2")
        os.system("%staosdump  -i ./taosdumptest/tmp5 -T 2 " % binPath)  
        tdSql.execute("use dp2")
        tdSql.query("show stables")
        tdSql.checkRows(3)
        tdSql.query("show tables")
        tdSql.checkRows(9)
        tdSql.query("select c20 from gt2")
        tdSql.checkData(0, 0, 8639)
        tdSql.query("select count(*) from st0_0")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st0_1")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st2_1")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st2_0")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st1_1")
        tdSql.checkData(0, 0, 2)
        tdSql.query("select count(*) from st1_0")
        tdSql.checkData(0, 0, 2)
        tdSql.execute("use dp1")
        tdSql.query("show stables")
        tdSql.checkRows(1)
        tdSql.query("show tables")
        tdSql.checkRows(4)
        tdSql.query("select c1 from st0_0 order by ts")
        tdSql.checkData(0,0,8537)
        tdSql.query("select c2 from st0_1 order by ts")
        tdSql.checkData(1,0,"D")
        tdSql.query("select * from gt0")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.000')
        tdSql.checkData(0,1,637)

       #check taosdumptest/tmp6
        tdSql.execute("drop database dp1")
        tdSql.execute("drop database dp2")
        tdSql.execute("drop database dp3")
        os.system("%staosdump  -i ./taosdumptest/tmp6 -T 2 " % binPath)  
        tdSql.execute("use dp3")
        tdSql.query("show stables")
        tdSql.checkRows(1)
        tdSql.query("show tables")
        tdSql.checkRows(1)
        tdSql.query("select count(*) from st0_0")
        tdSql.checkData(0, 0, 2)        
        tdSql.query("select * from st0 order by ts")
        tdSql.checkData(0,0,'2021-02-25 10:00:12.000000001')
        tdSql.checkData(0,1,8600)

        os.system("rm -rf ./taosdumptest/tmp1")
        os.system("rm -rf ./taosdumptest/tmp2")
        os.system("rm -rf ./taosdumptest/tmp3")
        os.system("rm -rf ./taosdumptest/tmp4")
        os.system("rm -rf ./taosdumptest/tmp5")
        os.system("rm -rf ./dump_result.txt")
        os.system("rm -rf ./db.csv")
294 295 296 297 298 299 300 301

    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)


tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())