未验证 提交 6cf4e36a 编写于 作者: S Shengliang Guan 提交者: GitHub

Merge pull request #1933 from taosdata/feature/add-testcase-to-test-boundary

Feature/add testcase to test boundary
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys
import string
import random
import subprocess
from util.log import * from util.log import *
from util.cases import * from util.cases import *
from util.sql import * from util.sql import *
...@@ -14,34 +17,9 @@ class TDTestCase: ...@@ -14,34 +17,9 @@ class TDTestCase:
def run(self): def run(self):
tdSql.prepare() 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') 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') tdLog.info('drop table dd -x step0')
tdSql.error('drop table dd') 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') tdLog.info('create table tb(ts timestamp, int) -x step1')
tdSql.error('create table tb(ts timestamp, int)') tdSql.error('create table tb(ts timestamp, int)')
# TSIM: return -1 # TSIM: return -1
...@@ -112,37 +90,24 @@ class TDTestCase: ...@@ -112,37 +90,24 @@ class TDTestCase:
tdLog.info('=============== step4') tdLog.info('=============== step4')
# TSIM: sql create table $tb (ts timestamp, # TSIM: sql create table $tb (ts timestamp,
# a0123456789012345678901234567890123456789 int) # 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( 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( tdSql.execute(
'create table tb (ts timestamp, a0123456789012345678901234567890123456789 int)') 'create table tb (ts timestamp, %s int)' % col_name)
# 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:
# TSIM: sql insert into $tb values (now , 1) # TSIM: sql insert into $tb values (now , 1)
tdLog.info("insert into tb values (now , 1)") tdLog.info("insert into tb values (now , 1)")
tdSql.execute("insert into tb values (now , 1)") tdSql.execute("insert into tb values (now , 1)")
...@@ -152,24 +117,6 @@ class TDTestCase: ...@@ -152,24 +117,6 @@ class TDTestCase:
# TSIM: if $rows != 1 then # TSIM: if $rows != 1 then
tdLog.info('tdSql.checkRow(1)') tdLog.info('tdSql.checkRow(1)')
tdSql.checkRows(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 # convert end
def stop(self): def stop(self):
......
...@@ -76,7 +76,7 @@ class TDTestCase: ...@@ -76,7 +76,7 @@ class TDTestCase:
tdSql.checkRows(2) tdSql.checkRows(2)
data = "now" data = "now"
for x in range(0, boundary-1): for x in range(0, boundary - 1):
data = data + ", %d" % x data = data + ", %d" % x
tdLog.info("insert into tb1 values (%s)" % data) tdLog.info("insert into tb1 values (%s)" % data)
tdSql.execute("insert into tb1 values (%s)" % data) tdSql.execute("insert into tb1 values (%s)" % data)
......
...@@ -21,7 +21,7 @@ class TDTestCase: ...@@ -21,7 +21,7 @@ class TDTestCase:
tableNameMaxLen = int( tableNameMaxLen = int(
subprocess.check_output( subprocess.check_output(
getTableNameLen, shell=True)) 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 chars = string.ascii_uppercase + string.ascii_lowercase
tb_name = ''.join(random.choices(chars, k=tableNameMaxLen)) tb_name = ''.join(random.choices(chars, k=tableNameMaxLen))
tdLog.info('tb_name length %d' % len(tb_name)) tdLog.info('tb_name length %d' % len(tb_name))
......
...@@ -71,7 +71,7 @@ class TDCases: ...@@ -71,7 +71,7 @@ class TDCases:
case.run() case.run()
except Exception as e: except Exception as e:
tdLog.notice(repr(e)) tdLog.notice(repr(e))
tdLog.exit("%s failed: %s" % (__file__, fileName)) tdLog.exit("%s failed" % (fileName))
case.stop() case.stop()
runNum += 1 runNum += 1
continue continue
......
...@@ -15,6 +15,7 @@ import sys ...@@ -15,6 +15,7 @@ import sys
import os import os
import time import time
import datetime import datetime
import inspect
from util.log import * from util.log import *
...@@ -44,7 +45,12 @@ class TDSql: ...@@ -44,7 +45,12 @@ class TDSql:
except BaseException: except BaseException:
expectErrNotOccured = False expectErrNotOccured = False
if expectErrNotOccured: 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: else:
tdLog.info("sql:%.40s, expect error occured" % (sql)) tdLog.info("sql:%.40s, expect error occured" % (sql))
...@@ -62,33 +68,39 @@ class TDSql: ...@@ -62,33 +68,39 @@ class TDSql:
def checkRows(self, expectRows): def checkRows(self, expectRows):
if self.queryRows != expectRows: if self.queryRows != expectRows:
frame = inspect.stack()[1]
callerModule = inspect.getmodule(frame[0])
callerFilename = callerModule.__file__
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, queryRows:%d != expect:%d" % "%s failed: sql:%.40s, queryRows:%d != expect:%d" %
(self.sql, self.queryRows, expectRows)) (callerFilename, self.sql, self.queryRows, expectRows))
tdLog.info("sql:%.40s, queryRows:%d == expect:%d" % tdLog.info("sql:%.40s, queryRows:%d == expect:%d" %
(self.sql, self.queryRows, expectRows)) (self.sql, self.queryRows, expectRows))
def checkData(self, row, col, data): def checkData(self, row, col, data):
frame = inspect.stack()[1]
callerModule = inspect.getmodule(frame[0])
callerFilename = callerModule.__file__
if row < 0: if row < 0:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, row:%d is smaller than zero" % "%s failed: sql:%.40s, row:%d is smaller than zero" %
(self.sql, row)) (callerFilename, self.sql, row))
if col < 0: if col < 0:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, col:%d is smaller than zero" % "%s failed: sql:%.40s, col:%d is smaller than zero" %
(self.sql, col)) (callerFilename, self.sql, col))
if row >= self.queryRows: if row >= self.queryRows:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, row:%d is larger than queryRows:%d" % "%s failed: sql:%.40s, row:%d is larger than queryRows:%d" %
(self.sql, row, self.queryRows)) (callerFilename, self.sql, row, self.queryRows))
if col >= self.queryCols: if col >= self.queryCols:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, col:%d is larger than queryRows:%d" % "%s failed: sql:%.40s, col:%d is larger than queryRows:%d" %
(self.sql, col, self.queryCols)) (callerFilename, self.sql, col, self.queryCols))
if self.queryResult[row][col] != data: if self.queryResult[row][col] != data:
tdLog.exit( tdLog.exit("%s failed: sql:%.40s row:%d col:%d data:%s != expect:%s" % (
"failed: sql:%.40s row:%d col:%d data:%s != expect:%s" % callerFilename, self.sql, row, col, self.queryResult[row][col], data))
(self.sql, row, col, self.queryResult[row][col], data))
if data is None: if data is None:
tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%s" % tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%s" %
...@@ -104,22 +116,26 @@ class TDSql: ...@@ -104,22 +116,26 @@ class TDSql:
(self.sql, row, col, self.queryResult[row][col], data)) (self.sql, row, col, self.queryResult[row][col], data))
def getData(self, row, col): def getData(self, row, col):
frame = inspect.stack()[1]
callerModule = inspect.getmodule(frame[0])
callerFilename = callerModule.__file__
if row < 0: if row < 0:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, row:%d is smaller than zero" % "%s failed: sql:%.40s, row:%d is smaller than zero" %
(self.sql, row)) (callerFilename, self.sql, row))
if col < 0: if col < 0:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, col:%d is smaller than zero" % "%s failed: sql:%.40s, col:%d is smaller than zero" %
(self.sql, col)) (callerFilename, self.sql, col))
if row >= self.queryRows: if row >= self.queryRows:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, row:%d is larger than queryRows:%d" % "%s failed: sql:%.40s, row:%d is larger than queryRows:%d" %
(self.sql, row, self.queryRows)) (callerFilename, self.sql, row, self.queryRows))
if col >= self.queryCols: if col >= self.queryCols:
tdLog.exit( tdLog.exit(
"failed: sql:%.40s, col:%d is larger than queryRows:%d" % "%s failed: sql:%.40s, col:%d is larger than queryRows:%d" %
(self.sql, col, self.queryCols)) (callerFilename, self.sql, col, self.queryCols))
return self.queryResult[row][col] return self.queryResult[row][col]
def executeTimes(self, sql, times): def executeTimes(self, sql, times):
...@@ -137,8 +153,12 @@ class TDSql: ...@@ -137,8 +153,12 @@ class TDSql:
def checkAffectedRows(self, expectAffectedRows): def checkAffectedRows(self, expectAffectedRows):
if self.affectedRows != expectAffectedRows: if self.affectedRows != expectAffectedRows:
tdLog.exit("failed: sql:%.40s, affectedRows:%d != expect:%d" % frame = inspect.stack()[1]
(self.sql, self.affectedRows, expectAffectedRows)) 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" % tdLog.info("sql:%.40s, affectedRows:%d == expect:%d" %
(self.sql, self.affectedRows, expectAffectedRows)) (self.sql, self.affectedRows, expectAffectedRows))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册