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

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


class TDTestCase:
13
    def init(self, conn, logSql, replicaVar = 1):
14 15 16
        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
    def run(self):
        tdSql.prepare()

        tdLog.info('=============== step1')
sangshuduo's avatar
sangshuduo 已提交
38 39
        tdLog.info('create table tb (ts timestamp, speed binary(10))')
        tdSql.execute('create table tb (ts timestamp, speed binary(10))')
40 41 42 43 44 45 46 47 48 49 50 51
        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')
sangshuduo's avatar
sangshuduo 已提交
52 53
        tdLog.info("insert into tb values (now+2a, '0123456789')")
        tdSql.execute("insert into tb values (now+2a, '0123456789')")
54 55 56 57 58
        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')
sangshuduo's avatar
sangshuduo 已提交
59 60
        tdLog.info("tdSql.checkData(0, 0, '0123456789')")
        tdSql.checkData(0, 0, '0123456789')
61
        tdLog.info('=============== step4')
sangshuduo's avatar
sangshuduo 已提交
62 63
        tdLog.info("insert into tb values (now+3a, '01234567890')")
        tdSql.error("insert into tb values (now+3a, '01234567890')")
64 65
        tdLog.info("insert into tb values (now+3a, '34567')")
        tdSql.execute("insert into tb values (now+3a, '34567')")
sangshuduo's avatar
sangshuduo 已提交
66 67
        tdLog.info("insert into tb values (now+4a, NULL)")
        tdSql.execute("insert into tb values (now+4a, NULL)")
68 69
        tdLog.info('select speed from tb order by ts desc')
        tdSql.query('select speed from tb order by ts desc')
sangshuduo's avatar
sangshuduo 已提交
70 71 72 73 74
        tdSql.checkRows(4)
        tdLog.info("tdSql.checkData(0, 0, '0123456789')")
        tdSql.checkData(0, 0, '0123456789')
        tdLog.info("tdSql.checkData(3, 0, None)")
        tdSql.checkData(3, 0, None)
75
        tdLog.info("insert into tb values (now+4a, \"'';\")")
76

sangshuduo's avatar
sangshuduo 已提交
77 78 79 80 81 82 83
        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',
                    '')
84

sangshuduo's avatar
sangshuduo 已提交
85 86 87 88 89 90 91 92 93 94 95 96
            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 '';")
97 98 99 100 101 102 103 104

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


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