test.py 3.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/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/linux/python2/

# -*- coding: utf-8 -*-
import sys
import getopt
18 19 20
import subprocess
from distutils.log import warn as printf

21 22 23 24 25 26 27 28 29 30 31 32 33 34
from util.log import *
from util.dnodes import *
from util.cases import *

import taos

# add testcase here:
from insert.basic import *

if __name__ == "__main__":
    fileName = "all"
    deployPath = ""
    masterIp = ""
    testCluster = False
35 36 37 38
    valgrind = 0
    stop = 0
    opts, args = getopt.gnu_getopt(sys.argv[1:], 'f:p:m:scgh', [
                               'file=', 'path=', 'master', 'stop', 'cluster', 'valgrind', 'help'])
39 40 41 42 43 44 45 46 47 48
    for key, value in opts:
        if key in ['-h', '--help']:
            tdLog.printNoPrefix(
                'A collection of test cases written using Python')
            tdLog.printNoPrefix('-f Name of test case file written by Python')
            tdLog.printNoPrefix('-p Deploy Path for Simulator')
            tdLog.printNoPrefix('-m Master Ip for Simulator')
            tdLog.printNoPrefix('-c Test Cluster Flag')
            tdLog.printNoPrefix('-s stop All dnodes')
            sys.exit(0)
49

50 51
        if key in ['-f', '--file']:
            fileName = value
52

53 54
        if key in ['-p', '--path']:
            deployPath = value
55

56 57
        if key in ['-m', '--master']:
            masterIp = value
58

59 60
        if key in ['-c', '--cluster']:
            testCluster = True
61 62 63 64

        if key in ['-g', '--valgrind']:
            valgrind = 1

65
        if key in ['-s', '--stop']:
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
            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 " % toBeKilled
        os.system(killCmd)
        time.sleep(1)

        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)

        tdLog.exit('stop All dnodes')
87 88 89

    if masterIp == "":
        tdDnodes.init(deployPath)
90 91
        tdDnodes.setValgrind(valgrind)

92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
        if testCluster:
            tdLog.notice("Procedures for testing cluster")
            if fileName == "all":
                tdCases.runAllCluster()
            else:
                tdCases.runOneCluster(fileName)
        else:
            tdLog.notice("Procedures for testing self-deployment")
            tdDnodes.stopAll()
            tdDnodes.deploy(1)
            tdDnodes.start(1)
            conn = taos.connect(
                host='192.168.0.1',
                config=tdDnodes.getSimCfgPath())
            if fileName == "all":
                tdCases.runAllLinux(conn)
            else:
                tdCases.runOneLinux(conn, fileName)
            conn.close()
    else:
        tdLog.notice("Procedures for tdengine deployed in %s" % (masterIp))
113 114
        cfgPath = "../../build/test/cfg"   # was: tdDnodes.getSimCfgPath()
        conn = taos.connect(host=masterIp, config=cfgPath)
115 116 117 118 119
        if fileName == "all":
            tdCases.runAllWindows(conn)
        else:
            tdCases.runOneWindows(conn, fileName)
        conn.close()