189 lines
7.8 KiB
Python
189 lines
7.8 KiB
Python
###################################################################
|
||
# 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):
|
||
if not os.path.exists("./taosdumptest/tmp1"):
|
||
os.makedirs("./taosdumptest/tmp1")
|
||
else:
|
||
print("目录存在")
|
||
|
||
if not os.path.exists("./taosdumptest/tmp2"):
|
||
os.makedirs("./taosdumptest/tmp2")
|
||
tdSql.execute("drop database if exists db")
|
||
tdSql.execute("create database db days 11 keep 3649 blocks 8 ")
|
||
tdSql.execute("create database db1 days 12 keep 3640 blocks 7 ")
|
||
tdSql.execute("use db")
|
||
tdSql.execute(
|
||
"create table st(ts timestamp, c1 int, c2 nchar(10)) tags(t1 int, t2 binary(10))")
|
||
tdSql.execute("create table t1 using st tags(1, 'beijing')")
|
||
sql = "insert into t1 values"
|
||
currts = self.ts
|
||
for i in range(100):
|
||
sql += "(%d, %d, 'nchar%d')" % (currts + i, i % 100, i % 100)
|
||
tdSql.execute(sql)
|
||
tdSql.execute("create table t2 using st tags(2, 'shanghai')")
|
||
sql = "insert into t2 values"
|
||
currts = self.ts
|
||
for i in range(100):
|
||
sql += "(%d, %d, 'nchar%d')" % (currts + i, i % 100, i % 100)
|
||
tdSql.execute(sql)
|
||
|
||
buildPath = self.getBuildPath()
|
||
if (buildPath == ""):
|
||
tdLog.exit("taosdump not found!")
|
||
else:
|
||
tdLog.info("taosdump found in %s" % buildPath)
|
||
binPath = buildPath + "/build/bin/"
|
||
|
||
os.system("%staosdump --databases db -o ./taosdumptest/tmp1" % binPath)
|
||
os.system(
|
||
"%staosdump --databases db1 -o ./taosdumptest/tmp2" %
|
||
binPath)
|
||
|
||
tdSql.execute("drop database db")
|
||
tdSql.execute("drop database db1")
|
||
tdSql.query("show databases")
|
||
tdSql.checkRows(0)
|
||
|
||
os.system("%staosdump -i ./taosdumptest/tmp1" % binPath)
|
||
os.system("%staosdump -i ./taosdumptest/tmp2" % binPath)
|
||
|
||
tdSql.execute("use db")
|
||
tdSql.query("show databases")
|
||
tdSql.checkRows(2)
|
||
dbresult = tdSql.queryResult
|
||
# 6--days,7--keep0,keep1,keep, 12--block,
|
||
|
||
isCommunity = self.checkCommunity()
|
||
print("iscommunity: %d" % isCommunity)
|
||
for i in range(len(dbresult)):
|
||
if dbresult[i][0] == 'db':
|
||
print(dbresult[i])
|
||
print(type(dbresult[i][6]))
|
||
print(type(dbresult[i][7]))
|
||
print(type(dbresult[i][9]))
|
||
assert dbresult[i][6] == 11
|
||
if isCommunity:
|
||
assert dbresult[i][7] == "3649"
|
||
else:
|
||
assert dbresult[i][7] == "3649,3649,3649"
|
||
assert dbresult[i][9] == 8
|
||
if dbresult[i][0] == 'db1':
|
||
assert dbresult[i][6] == 12
|
||
if isCommunity:
|
||
assert dbresult[i][7] == "3640"
|
||
else:
|
||
assert dbresult[i][7] == "3640,3640,3640"
|
||
assert dbresult[i][9] == 7
|
||
|
||
tdSql.query("show stables")
|
||
tdSql.checkRows(1)
|
||
tdSql.checkData(0, 0, 'st')
|
||
|
||
tdSql.query("show tables")
|
||
tdSql.checkRows(2)
|
||
tdSql.checkData(0, 0, 't2')
|
||
tdSql.checkData(1, 0, 't1')
|
||
|
||
tdSql.query("select * from t1")
|
||
tdSql.checkRows(100)
|
||
for i in range(100):
|
||
tdSql.checkData(i, 1, i)
|
||
tdSql.checkData(i, 2, "nchar%d" % i)
|
||
|
||
tdSql.query("select * from t2")
|
||
tdSql.checkRows(100)
|
||
for i in range(100):
|
||
tdSql.checkData(i, 1, i)
|
||
tdSql.checkData(i, 2, "nchar%d" % i)
|
||
|
||
# drop all databases,boundary value testing.
|
||
# length(databasename)<=32;length(tablesname)<=192
|
||
tdSql.execute("drop database db")
|
||
tdSql.execute("drop database db1")
|
||
os.system("rm -rf ./taosdumptest/tmp1")
|
||
os.system("rm -rf ./taosdumptest/tmp2")
|
||
os.makedirs("./taosdumptest/tmp1")
|
||
tdSql.execute("create database db12312313231231321312312312_323")
|
||
tdSql.error("create database db12312313231231321312312312_3231")
|
||
tdSql.execute("use db12312313231231321312312312_323")
|
||
tdSql.execute("create stable st12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678_9(ts timestamp, c1 int, c2 nchar(10)) tags(t1 int, t2 binary(10))")
|
||
tdSql.error("create stable st_12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678_9(ts timestamp, c1 int, c2 nchar(10)) tags(t1 int, t2 binary(10))")
|
||
tdSql.execute(
|
||
"create stable st(ts timestamp, c1 int, c2 nchar(10)) tags(t1 int, t2 binary(10))")
|
||
tdSql.error("create stable st1(ts timestamp, c1 int, col2_012345678901234567890123456789012345678901234567890123456789 nchar(10)) tags(t1 int, t2 binary(10))")
|
||
|
||
tdSql.execute("select * from db12312313231231321312312312_323.st12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678_9")
|
||
tdSql.error("create table t0_12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678_9 using st tags(1, 'beijing')")
|
||
tdSql.query("show stables")
|
||
tdSql.checkRows(2)
|
||
os.system(
|
||
"%staosdump --databases db12312313231231321312312312_323 -o ./taosdumptest/tmp1" % binPath)
|
||
tdSql.execute("drop database db12312313231231321312312312_323")
|
||
os.system("%staosdump -i ./taosdumptest/tmp1" % binPath)
|
||
tdSql.execute("use db12312313231231321312312312_323")
|
||
tdSql.query("show stables")
|
||
tdSql.checkRows(2)
|
||
os.system("rm -rf ./taosdumptest/tmp1")
|
||
os.system("rm -rf ./taosdumptest/tmp2")
|
||
os.system("rm -rf ./dump_result.txt")
|
||
os.system("rm -rf ./db.csv")
|
||
|
||
def stop(self):
|
||
tdSql.close()
|
||
tdLog.success("%s successfully executed" % __file__)
|
||
|
||
|
||
tdCases.addWindows(__file__, TDTestCase())
|
||
tdCases.addLinux(__file__, TDTestCase())
|