109 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.7 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 taos
 | 
						|
from util.log import *
 | 
						|
from util.cases import *
 | 
						|
from util.sql import *
 | 
						|
from util.dnodes import *
 | 
						|
 | 
						|
dataDir = ['data00','data01','data02','data03','data04']
 | 
						|
dataDict = {'data00':0,'data01':0,'data02':0,'data03':0,'data04':0}
 | 
						|
class TDTestCase:
 | 
						|
    def init(self, conn, logSql):
 | 
						|
        tdLog.debug("start to execute %s" % __file__)
 | 
						|
        tdSql.init(conn.cursor(), logSql)
 | 
						|
 | 
						|
    def getfiles(self,ospath):
 | 
						|
        try:
 | 
						|
            files = os.listdir(ospath)
 | 
						|
            for f in files:
 | 
						|
                path = os.path.join(ospath, f)
 | 
						|
                if os.path.isfile(path):
 | 
						|
                    if path.endswith('.data'):
 | 
						|
                        for i in dataDir:
 | 
						|
                            if i in path:
 | 
						|
                                dataDict[i] = dataDict[i] + 1 
 | 
						|
                                print(path)
 | 
						|
                if os.path.isdir(path):
 | 
						|
                    self.getfiles(path)
 | 
						|
        except  Exception as e :
 | 
						|
            print(str(e))
 | 
						|
 | 
						|
    def run(self):
 | 
						|
        self.ntables = 1000             
 | 
						|
        self.ts = 1520000010000
 | 
						|
 | 
						|
        tdDnodes.stop(1)
 | 
						|
        # Test1 1 dataDir
 | 
						|
        tdLog.info("================= step1")
 | 
						|
        cfg={
 | 
						|
            '10' : 'maxVgroupsPerDb',
 | 
						|
            '100' : 'maxTablesPerVnode',
 | 
						|
            '/mnt/data00 0 1' : 'dataDir',
 | 
						|
            '/mnt/data01 0 0' : 'dataDir',
 | 
						|
            '/mnt/data02 0 0' : 'dataDir',
 | 
						|
            '/mnt/data03 0 0' : 'dataDir',
 | 
						|
            '/mnt/data04 0 0' : 'dataDir'
 | 
						|
        }
 | 
						|
        tdSql.createDir('/mnt/data00')
 | 
						|
        tdSql.createDir('/mnt/data01')
 | 
						|
        tdSql.createDir('/mnt/data02')
 | 
						|
        tdSql.createDir('/mnt/data03')
 | 
						|
        tdSql.createDir('/mnt/data04')   
 | 
						|
        
 | 
						|
        tdDnodes.deploy(1,cfg)
 | 
						|
        tdDnodes.startWithoutSleep(1)
 | 
						|
 | 
						|
        tdSql.execute("create database test duration 1")
 | 
						|
        tdSql.execute("use test")
 | 
						|
 | 
						|
        tdSql.execute("create table stb(ts timestamp, c int) tags(t int)")
 | 
						|
 | 
						|
        for i in range(self.ntables):
 | 
						|
            tdSql.execute("create table tb%d using stb tags(%d)" %(i, i))            
 | 
						|
            tdSql.execute("insert into tb%d values(%d, 1)" % (i,self.ts + int (i / 100) * 86400000))
 | 
						|
 | 
						|
        tdLog.info("================= step2")
 | 
						|
        tdDnodes.stop(1)
 | 
						|
        tdDnodes.start(1)
 | 
						|
 | 
						|
        tdSql.query("select * from test.stb")
 | 
						|
        tdSql.checkRows(1000)
 | 
						|
 | 
						|
        tdLog.info("================= step3")
 | 
						|
        tdSql.execute('drop database test')
 | 
						|
        for i in range(50):
 | 
						|
            tdSql.execute("create database test%d duration 1" %(i))
 | 
						|
            tdSql.execute("use test%d" %(i))
 | 
						|
            tdSql.execute("create table tb (ts timestamp,i int)") 
 | 
						|
            for j in range(10):           
 | 
						|
                tdSql.execute("insert into tb values(%d, 1)" % (self.ts + int (i / 100) * 86400000))
 | 
						|
        tdDnodes.stop(1)
 | 
						|
        tdDnodes.start(1)
 | 
						|
        flag = True
 | 
						|
        for i in range(4):
 | 
						|
            if dataDict[dataDir[i]] == dataDict[dataDir[i+1]]:
 | 
						|
                flag = flag & True
 | 
						|
            else:
 | 
						|
                flag = flag & False
 | 
						|
                break
 | 
						|
        if not flag : tdLog.exit("%s failed, expect  not occured" % (sys.argv[0]))
 | 
						|
    def stop(self):
 | 
						|
        tdSql.close()
 | 
						|
        tdLog.success("%s successfully executed" % __file__)
 | 
						|
 | 
						|
tdCases.addWindows(__file__, TDTestCase())
 | 
						|
tdCases.addLinux(__file__, TDTestCase())
 |