Merge pull request #1933 from taosdata/feature/add-testcase-to-test-boundary
Feature/add testcase to test boundary
This commit is contained in:
commit
6cf4e36a1f
|
@ -1,6 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import string
|
||||
import random
|
||||
import subprocess
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
|
@ -14,34 +17,9 @@ class TDTestCase:
|
|||
def run(self):
|
||||
tdSql.prepare()
|
||||
|
||||
# TSIM: system sh/stop_dnodes.sh
|
||||
# TSIM:
|
||||
# TSIM: system sh/ip.sh -i 1 -s up
|
||||
# TSIM: system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1
|
||||
# TSIM: system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
||||
# TSIM: system sh/exec.sh -n dnode1 -s start
|
||||
# TSIM:
|
||||
# TSIM: sleep 3000
|
||||
# TSIM: sql connect
|
||||
# TSIM:
|
||||
# TSIM: $i = 0
|
||||
# TSIM: $dbPrefix = lm_cm_db
|
||||
# TSIM: $tbPrefix = lm_cm_tb
|
||||
# TSIM: $db = $dbPrefix . $i
|
||||
# TSIM: $tb = $tbPrefix . $i
|
||||
# TSIM:
|
||||
# TSIM: print =============== step1
|
||||
tdLog.info('=============== step1')
|
||||
# TSIM: sql create database $db
|
||||
# TSIM: sql use $db
|
||||
# TSIM:
|
||||
# TSIM: sql drop table dd -x step0
|
||||
tdLog.info('drop table dd -x step0')
|
||||
tdSql.error('drop table dd')
|
||||
# TSIM: return -1
|
||||
# TSIM: step0:
|
||||
# TSIM:
|
||||
# TSIM: sql create table $tb(ts timestamp, int) -x step1
|
||||
tdLog.info('create table tb(ts timestamp, int) -x step1')
|
||||
tdSql.error('create table tb(ts timestamp, int)')
|
||||
# TSIM: return -1
|
||||
|
@ -112,37 +90,24 @@ class TDTestCase:
|
|||
tdLog.info('=============== step4')
|
||||
# TSIM: sql create table $tb (ts timestamp,
|
||||
# a0123456789012345678901234567890123456789 int)
|
||||
getMaxColNum = "grep -w '#define TSDB_COL_NAME_LEN' ../../src/inc/taosdef.h|awk '{print $3}'"
|
||||
boundary = int(subprocess.check_output(getMaxColNum, shell=True))
|
||||
tdLog.info("get max column name length is %d" % boundary)
|
||||
chars = string.ascii_uppercase + string.ascii_lowercase
|
||||
|
||||
# col_name = ''.join(random.choices(chars, k=boundary+1))
|
||||
# tdLog.info(
|
||||
# 'create table tb (ts timestamp, %s int), col_name length is %d' % (col_name, len(col_name)))
|
||||
# tdSql.error(
|
||||
# 'create table tb (ts timestamp, %s int)' % col_name)
|
||||
|
||||
col_name = ''.join(random.choices(chars, k=boundary))
|
||||
tdLog.info(
|
||||
'create table tb (ts timestamp, a0123456789012345678901234567890123456789 int)')
|
||||
'create table tb (ts timestamp, %s int), col_name length is %d' %
|
||||
(col_name, len(col_name)))
|
||||
tdSql.execute(
|
||||
'create table tb (ts timestamp, a0123456789012345678901234567890123456789 int)')
|
||||
# TSIM: sql drop table $tb
|
||||
tdLog.info('drop table tb')
|
||||
tdSql.execute('drop table tb')
|
||||
# TSIM:
|
||||
# TSIM: sql show tables
|
||||
tdLog.info('show tables')
|
||||
tdSql.query('show tables')
|
||||
# TSIM: if $rows != 0 then
|
||||
tdLog.info('tdSql.checkRow(0)')
|
||||
tdSql.checkRows(0)
|
||||
# TSIM: return -1
|
||||
# TSIM: endi
|
||||
# TSIM:
|
||||
# TSIM: print =============== step5
|
||||
tdLog.info('=============== step5')
|
||||
# TSIM: sql create table $tb (ts timestamp, a0123456789 int)
|
||||
tdLog.info('create table tb (ts timestamp, a0123456789 int)')
|
||||
tdSql.execute('create table tb (ts timestamp, a0123456789 int)')
|
||||
# TSIM: sql show tables
|
||||
tdLog.info('show tables')
|
||||
tdSql.query('show tables')
|
||||
# TSIM: if $rows != 1 then
|
||||
tdLog.info('tdSql.checkRow(1)')
|
||||
tdSql.checkRows(1)
|
||||
# TSIM: return -1
|
||||
# TSIM: endi
|
||||
# TSIM:
|
||||
'create table tb (ts timestamp, %s int)' % col_name)
|
||||
|
||||
# TSIM: sql insert into $tb values (now , 1)
|
||||
tdLog.info("insert into tb values (now , 1)")
|
||||
tdSql.execute("insert into tb values (now , 1)")
|
||||
|
@ -152,24 +117,6 @@ class TDTestCase:
|
|||
# TSIM: if $rows != 1 then
|
||||
tdLog.info('tdSql.checkRow(1)')
|
||||
tdSql.checkRows(1)
|
||||
# TSIM: return -1
|
||||
# TSIM: endi
|
||||
# TSIM:
|
||||
# TSIM: sql drop database $db
|
||||
tdLog.info('drop database db')
|
||||
tdSql.execute('drop database db')
|
||||
# TSIM: sql show databases
|
||||
tdLog.info('show databases')
|
||||
tdSql.query('show databases')
|
||||
# TSIM: if $rows != 0 then
|
||||
tdLog.info('tdSql.checkRow(0)')
|
||||
tdSql.checkRows(0)
|
||||
# TSIM: return -1
|
||||
# TSIM: endi
|
||||
# TSIM:
|
||||
# TSIM:
|
||||
# TSIM:
|
||||
# TSIM:
|
||||
# convert end
|
||||
|
||||
def stop(self):
|
||||
|
|
|
@ -76,7 +76,7 @@ class TDTestCase:
|
|||
tdSql.checkRows(2)
|
||||
|
||||
data = "now"
|
||||
for x in range(0, boundary-1):
|
||||
for x in range(0, boundary - 1):
|
||||
data = data + ", %d" % x
|
||||
tdLog.info("insert into tb1 values (%s)" % data)
|
||||
tdSql.execute("insert into tb1 values (%s)" % data)
|
||||
|
|
|
@ -21,7 +21,7 @@ class TDTestCase:
|
|||
tableNameMaxLen = int(
|
||||
subprocess.check_output(
|
||||
getTableNameLen, shell=True))
|
||||
tdLog.notice("table name max length is %d" % tableNameMaxLen)
|
||||
tdLog.info("table name max length is %d" % tableNameMaxLen)
|
||||
chars = string.ascii_uppercase + string.ascii_lowercase
|
||||
tb_name = ''.join(random.choices(chars, k=tableNameMaxLen))
|
||||
tdLog.info('tb_name length %d' % len(tb_name))
|
||||
|
|
|
@ -71,7 +71,7 @@ class TDCases:
|
|||
case.run()
|
||||
except Exception as e:
|
||||
tdLog.notice(repr(e))
|
||||
tdLog.exit("%s failed: %s" % (__file__, fileName))
|
||||
tdLog.exit("%s failed" % (fileName))
|
||||
case.stop()
|
||||
runNum += 1
|
||||
continue
|
||||
|
|
|
@ -15,6 +15,7 @@ import sys
|
|||
import os
|
||||
import time
|
||||
import datetime
|
||||
import inspect
|
||||
from util.log import *
|
||||
|
||||
|
||||
|
@ -44,7 +45,12 @@ class TDSql:
|
|||
except BaseException:
|
||||
expectErrNotOccured = False
|
||||
if expectErrNotOccured:
|
||||
tdLog.exit("failed: sql:%.40s, expect error not occured" % (sql))
|
||||
frame = inspect.stack()[1]
|
||||
callerModule = inspect.getmodule(frame[0])
|
||||
callerFilename = callerModule.__file__
|
||||
tdLog.exit(
|
||||
"%s failed: sql:%.40s, expect error not occured" %
|
||||
(callerFilename, sql))
|
||||
else:
|
||||
tdLog.info("sql:%.40s, expect error occured" % (sql))
|
||||
|
||||
|
@ -62,33 +68,39 @@ class TDSql:
|
|||
|
||||
def checkRows(self, expectRows):
|
||||
if self.queryRows != expectRows:
|
||||
frame = inspect.stack()[1]
|
||||
callerModule = inspect.getmodule(frame[0])
|
||||
callerFilename = callerModule.__file__
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, queryRows:%d != expect:%d" %
|
||||
(self.sql, self.queryRows, expectRows))
|
||||
"%s failed: sql:%.40s, queryRows:%d != expect:%d" %
|
||||
(callerFilename, self.sql, self.queryRows, expectRows))
|
||||
tdLog.info("sql:%.40s, queryRows:%d == expect:%d" %
|
||||
(self.sql, self.queryRows, expectRows))
|
||||
|
||||
def checkData(self, row, col, data):
|
||||
frame = inspect.stack()[1]
|
||||
callerModule = inspect.getmodule(frame[0])
|
||||
callerFilename = callerModule.__file__
|
||||
|
||||
if row < 0:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, row:%d is smaller than zero" %
|
||||
(self.sql, row))
|
||||
"%s failed: sql:%.40s, row:%d is smaller than zero" %
|
||||
(callerFilename, self.sql, row))
|
||||
if col < 0:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, col:%d is smaller than zero" %
|
||||
(self.sql, col))
|
||||
"%s failed: sql:%.40s, col:%d is smaller than zero" %
|
||||
(callerFilename, self.sql, col))
|
||||
if row >= self.queryRows:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, row:%d is larger than queryRows:%d" %
|
||||
(self.sql, row, self.queryRows))
|
||||
"%s failed: sql:%.40s, row:%d is larger than queryRows:%d" %
|
||||
(callerFilename, self.sql, row, self.queryRows))
|
||||
if col >= self.queryCols:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, col:%d is larger than queryRows:%d" %
|
||||
(self.sql, col, self.queryCols))
|
||||
"%s failed: sql:%.40s, col:%d is larger than queryRows:%d" %
|
||||
(callerFilename, self.sql, col, self.queryCols))
|
||||
if self.queryResult[row][col] != data:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s row:%d col:%d data:%s != expect:%s" %
|
||||
(self.sql, row, col, self.queryResult[row][col], data))
|
||||
tdLog.exit("%s failed: sql:%.40s row:%d col:%d data:%s != expect:%s" % (
|
||||
callerFilename, self.sql, row, col, self.queryResult[row][col], data))
|
||||
|
||||
if data is None:
|
||||
tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%s" %
|
||||
|
@ -104,22 +116,26 @@ class TDSql:
|
|||
(self.sql, row, col, self.queryResult[row][col], data))
|
||||
|
||||
def getData(self, row, col):
|
||||
frame = inspect.stack()[1]
|
||||
callerModule = inspect.getmodule(frame[0])
|
||||
callerFilename = callerModule.__file__
|
||||
|
||||
if row < 0:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, row:%d is smaller than zero" %
|
||||
(self.sql, row))
|
||||
"%s failed: sql:%.40s, row:%d is smaller than zero" %
|
||||
(callerFilename, self.sql, row))
|
||||
if col < 0:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, col:%d is smaller than zero" %
|
||||
(self.sql, col))
|
||||
"%s failed: sql:%.40s, col:%d is smaller than zero" %
|
||||
(callerFilename, self.sql, col))
|
||||
if row >= self.queryRows:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, row:%d is larger than queryRows:%d" %
|
||||
(self.sql, row, self.queryRows))
|
||||
"%s failed: sql:%.40s, row:%d is larger than queryRows:%d" %
|
||||
(callerFilename, self.sql, row, self.queryRows))
|
||||
if col >= self.queryCols:
|
||||
tdLog.exit(
|
||||
"failed: sql:%.40s, col:%d is larger than queryRows:%d" %
|
||||
(self.sql, col, self.queryCols))
|
||||
"%s failed: sql:%.40s, col:%d is larger than queryRows:%d" %
|
||||
(callerFilename, self.sql, col, self.queryCols))
|
||||
return self.queryResult[row][col]
|
||||
|
||||
def executeTimes(self, sql, times):
|
||||
|
@ -137,8 +153,12 @@ class TDSql:
|
|||
|
||||
def checkAffectedRows(self, expectAffectedRows):
|
||||
if self.affectedRows != expectAffectedRows:
|
||||
tdLog.exit("failed: sql:%.40s, affectedRows:%d != expect:%d" %
|
||||
(self.sql, self.affectedRows, expectAffectedRows))
|
||||
frame = inspect.stack()[1]
|
||||
callerModule = inspect.getmodule(frame[0])
|
||||
callerFilename = callerModule.__file__
|
||||
|
||||
tdLog.exit("%s failed: sql:%.40s, affectedRows:%d != expect:%d" % (
|
||||
callerFilename, self.sql, self.affectedRows, expectAffectedRows))
|
||||
tdLog.info("sql:%.40s, affectedRows:%d == expect:%d" %
|
||||
(self.sql, self.affectedRows, expectAffectedRows))
|
||||
|
||||
|
|
Loading…
Reference in New Issue