binary.py 3.8 KB
Newer Older
1 2
# -*- coding: utf-8 -*-

sangshuduo's avatar
sangshuduo 已提交
3
import platform
4 5 6 7 8 9 10 11 12 13 14 15 16
import sys
from util.log import *
from util.cases import *
from util.sql import *
import subprocess
import os


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

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
    def getPath(self, tool="taos"):
        selfPath = os.path.dirname(os.path.realpath(__file__))

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

        paths = []
        for root, dirs, files in os.walk(projPath):
            if ((tool) in files):
                rootRealPath = os.path.dirname(os.path.realpath(root))
                if ("packaging" not in rootRealPath):
                    paths.append(os.path.join(root, tool))
                    break
        return paths[0]

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
    def run(self):
        tdSql.prepare()

        tdLog.info('=============== step1')
        tdLog.info('create table tb (ts timestamp, speed binary(5))')
        tdSql.execute('create table tb (ts timestamp, speed binary(5))')
        tdLog.info("insert into tb values (now, ) -x step1")
        tdSql.error("insert into tb values (now, )")
        tdLog.info('=============== step2')
        tdLog.info("insert into tb values (now+1a, '1234')")
        tdSql.execute("insert into tb values (now+1a, '1234')")
        tdLog.info('select speed from tb order by ts desc')
        tdSql.query('select speed from tb order by ts desc')
        tdLog.info('tdSql.checkRow(1)')
        tdSql.checkRows(1)
        tdLog.info("tdSql.checkData(0, 0, '1234')")
        tdSql.checkData(0, 0, '1234')
        tdLog.info('=============== step3')
        tdLog.info("insert into tb values (now+2a, '23456')")
        tdSql.execute("insert into tb values (now+2a, '23456')")
        tdLog.info('select speed from tb order by ts desc')
        tdSql.query('select speed from tb order by ts desc')
        tdLog.info('tdSql.checkRow(2)')
        tdSql.checkRows(2)
        tdLog.info('==> $data00')
        tdLog.info("tdSql.checkData(0, 0, '23456')")
        tdSql.checkData(0, 0, '23456')
        tdLog.info('=============== step4')
        tdLog.info("insert into tb values (now+3a, '345678')")
        tdSql.error("insert into tb values (now+3a, '345678')")
        tdLog.info("insert into tb values (now+3a, '34567')")
        tdSql.execute("insert into tb values (now+3a, '34567')")
        tdLog.info('select speed from tb order by ts desc')
        tdSql.query('select speed from tb order by ts desc')
        tdLog.info('tdSql.checkRow(3)')
        tdSql.checkRows(3)
        tdLog.info('==> $data00')
        tdLog.info("tdSql.checkData(0, 0, '34567')")
        tdSql.checkData(0, 0, '34567')
        tdLog.info("insert into tb values (now+4a, \"'';\")")
74

sangshuduo's avatar
sangshuduo 已提交
75 76 77 78 79 80 81
        if platform.system() == "Linux":
            config_dir = subprocess.check_output(
                str("ps -ef |grep dnode1|grep -v grep |awk '{print $NF}'"),
                stderr=subprocess.STDOUT,
                shell=True).decode('utf-8').replace(
                    '\n',
                    '')
82

sangshuduo's avatar
sangshuduo 已提交
83 84 85 86 87 88 89 90 91 92 93 94
            binPath = self.getPath("taos")
            if (binPath == ""):
                tdLog.exit("taos not found!")
            else:
                tdLog.info("taos found: %s" % binPath)

            result = ''.join(
                os.popen(
                    r"""%s -s "insert into db.tb values (now+4a, \"'';\")" -c %s""" %
                    (binPath, (config_dir))).readlines())
            if "Query OK" not in result:
                tdLog.exit("err:insert '';")
95 96 97 98 99 100 101 102

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


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