132 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
| #!/usr/bin/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
 | |
| #
 | |
| ###################################################################
 | |
| # install pip
 | |
| # pip install src/connector/python/
 | |
| 
 | |
| # -*- coding: utf-8 -*-
 | |
| import sys
 | |
| import getopt
 | |
| import subprocess
 | |
| from distutils.log import warn as printf
 | |
| 
 | |
| from util.log import *
 | |
| from util.dnodes import *
 | |
| from util.cases import *
 | |
| from util.sql import *
 | |
| 
 | |
| import taos
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     fileName = "all"
 | |
|     deployPath = ""
 | |
|     testCluster = False
 | |
|     valgrind = 0
 | |
|     logSql = True
 | |
|     stop = 0
 | |
|     opts, args = getopt.gnu_getopt(sys.argv[1:], 'l:sgh', [
 | |
|         'logSql', 'stop', 'valgrind', 'help'])
 | |
|     for key, value in opts:
 | |
|         if key in ['-h', '--help']:
 | |
|             tdLog.printNoPrefix(
 | |
|                 'A collection of test cases written using Python')
 | |
|             tdLog.printNoPrefix('-l <True:False> logSql Flag')
 | |
|             tdLog.printNoPrefix('-s stop All dnodes')
 | |
|             tdLog.printNoPrefix('-g valgrind Test Flag')
 | |
|             sys.exit(0)
 | |
| 
 | |
|         if key in ['-l', '--logSql']:
 | |
|             if (value.upper() == "TRUE"):
 | |
|                 logSql = True
 | |
|             elif (value.upper() == "FALSE"):
 | |
|                 logSql = False
 | |
|             else:
 | |
|                 tdLog.printNoPrefix("logSql value %s is invalid" % logSql)
 | |
|                 sys.exit(0)
 | |
| 
 | |
|         if key in ['-g', '--valgrind']:
 | |
|             valgrind = 1
 | |
| 
 | |
|         if key in ['-s', '--stop']:
 | |
|             stop = 1
 | |
| 
 | |
|     if (stop != 0):
 | |
|         if (valgrind == 0):
 | |
|             toBeKilled = "taosd"
 | |
|         else:
 | |
|             toBeKilled = "valgrind.bin"
 | |
| 
 | |
|         killCmd = "ps -ef|grep -w %s| grep -v grep | awk '{print $2}' | xargs kill -HUP > /dev/null 2>&1" % toBeKilled
 | |
| 
 | |
|         psCmd = "ps -ef|grep -w %s| grep -v grep | awk '{print $2}'" % toBeKilled
 | |
|         processID = subprocess.check_output(psCmd, shell=True)
 | |
| 
 | |
|         while(processID):
 | |
|             os.system(killCmd)
 | |
|             time.sleep(1)
 | |
|             processID = subprocess.check_output(psCmd, shell=True)
 | |
| 
 | |
|         for port in range(6030, 6041):
 | |
|             usePortPID = "lsof -i tcp:%d | grep LISTEn | awk '{print $2}'" % port
 | |
|             processID = subprocess.check_output(usePortPID, shell=True)
 | |
| 
 | |
|             if processID:
 | |
|                 killCmd = "kill -TERM %s" % processID
 | |
|                 os.system(killCmd)
 | |
|             fuserCmd = "fuser -k -n tcp %d" % port
 | |
|             os.system(fuserCmd)
 | |
|         if valgrind:
 | |
|             time.sleep(2)
 | |
| 
 | |
|         tdLog.info('stop All dnodes')
 | |
|         sys.exit(0)
 | |
| 
 | |
|     tdDnodes.init(deployPath)
 | |
|     tdDnodes.setTestCluster(testCluster)
 | |
|     tdDnodes.setValgrind(valgrind)
 | |
| 
 | |
|     tdDnodes.stopAll()
 | |
|     tdDnodes.addSimExtraCfg("minTablesPerVnode", "100")
 | |
|     tdDnodes.deploy(1)
 | |
|     tdDnodes.start(1)
 | |
| 
 | |
|     host = '127.0.0.1'
 | |
| 
 | |
|     tdLog.info("Procedures for tdengine deployed in %s" % (host))
 | |
| 
 | |
|     tdCases.logSql(logSql)
 | |
| 
 | |
|     conn = taos.connect(
 | |
|         host,
 | |
|         config=tdDnodes.getSimCfgPath())
 | |
| 
 | |
|     tdSql.init(conn.cursor(), True)
 | |
| 
 | |
|     tdSql.execute("DROP DATABASE IF EXISTS db")
 | |
|     tdSql.execute("CREATE DATABASE IF NOT EXISTS db")
 | |
|     tdSql.execute("USE db")
 | |
| 
 | |
|     for i in range(0, 100):
 | |
|         tdSql.execute(
 | |
|             "CREATE TABLE IF NOT EXISTS tb%d (ts TIMESTAMP, temperature INT, humidity FLOAT)" % i)
 | |
| 
 | |
|     for i in range(1, 6):
 | |
|         tdSql.execute("INSERT INTO tb99 values (now + %da, %d, %f)" % (i, i, i * 1.0))
 | |
| 
 | |
|     tdSql.execute("DROP TABLE tb99")
 | |
|     tdSql.execute(
 | |
|             "CREATE TABLE IF NOT EXISTS tb99 (ts TIMESTAMP, temperature INT, humidity FLOAT)")
 | |
|     tdSql.query("SELECT * FROM tb99")
 | |
|     tdSql.checkRows(0)
 | |
|     
 | |
|     conn.close()
 |