diff --git a/tests/pytest/util/sqlset.py b/tests/pytest/util/sqlset.py index bccd49a209..3c1b6cd7f7 100644 --- a/tests/pytest/util/sqlset.py +++ b/tests/pytest/util/sqlset.py @@ -41,7 +41,7 @@ class TDSetSql: create_stb_sql = f'create table {stbname} ({column_sql[:-1]}) tags({tag_sql[:-1]})' return create_stb_sql - def set_insertsql(self,column_dict,tbname,binary_str,nchar_str): + def set_insertsql(self,column_dict,tbname,binary_str=None,nchar_str=None): sql = '' for k, v in column_dict.items(): if v.lower() == 'timestamp' or v.lower() == 'tinyint' or v.lower() == 'smallint' or v.lower() == 'int' or v.lower() == 'bigint' or \ diff --git a/tests/system-test/0-others/sysinfo.py b/tests/system-test/0-others/sysinfo.py new file mode 100644 index 0000000000..d74c4f6db9 --- /dev/null +++ b/tests/system-test/0-others/sysinfo.py @@ -0,0 +1,59 @@ +################################################################### +# 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 +# +################################################################### + +# -*- coding: utf-8 -*- + + +from util.log import * +from util.cases import * +from util.sql import * +import subprocess +from util.common import * + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor()) + self.dbname = 'db' + def get_database_info(self): + tdSql.query('select database()') + tdSql.checkData(0,0,None) + tdSql.execute(f'create database if not exists {self.dbname}') + tdSql.execute(f'use {self.dbname}') + tdSql.query('select database()') + tdSql.checkData(0,0,self.dbname) + tdSql.execute(f'drop database {self.dbname}') + + def check_version(self): + taos_list = ['server','client'] + for i in taos_list: + tdSql.query(f'select {i}_version()') + version_info = str(subprocess.run('cat ../../source/util/src/version.c |grep "char version"', shell=True,capture_output=True).stdout.decode('utf8')).split('"')[1] + tdSql.checkData(0,0,version_info) + + def get_server_status(self): + tdSql.query('select server_status()') + tdSql.checkData(0,0,1) + tdDnodes.stoptaosd(1) + + tdSql.query('select server_status()') + print(tdSql.queryResult) + def run(self): + self.get_database_info() + self.check_version() + # self.get_server_status() + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) \ No newline at end of file diff --git a/tests/system-test/2-query/count.py b/tests/system-test/2-query/count.py index c4c1d19898..c83ff43c51 100644 --- a/tests/system-test/2-query/count.py +++ b/tests/system-test/2-query/count.py @@ -1,192 +1,121 @@ from util.log import * from util.sql import * from util.cases import * - +from util.sqlset import * class TDTestCase: def init(self, conn, logSql): tdLog.debug("start to execute %s" % __file__) - tdSql.init(conn.cursor()) - + tdSql.init(conn.cursor(),logSql) + self.setsql = TDSetSql() self.rowNum = 10 self.ts = 1537146000000 - def run(self): + self.ntbname = 'ntb' + self.stbname = 'stb' + self.column_dict = { + 'ts':'timestamp', + 'c1':'int', + 'c2':'float', + 'c3':'double', + 'c4':'timestamp' + } + self.tag_dict = { + 't0':'int' + } + # The number of tag_values should be same as tbnum + self.tbnum = 2 + self.tag_values = [ + f'10', + f'100' + ] + def query_stb(self,k,stbname,tbnum,rownum): + tdSql.query(f'select count({k}) from {stbname}') + tdSql.checkEqual(tdSql.queryResult[0][0],tbnum*rownum) + tdSql.query(f'select count({k}) from {stbname} where ts <={self.ts+self.rowNum-1}') + tdSql.checkEqual(tdSql.queryResult[0][0],tbnum*rownum) + tdSql.query(f'select count({k}) from {stbname} where ts <={self.ts+self.rowNum-2}') + tdSql.checkEqual(tdSql.queryResult[0][0],tbnum*(rownum-1)) + def query_ctb(self,k,i,stbname,rownum): + tdSql.query(f'select count({k}) from {stbname}_{i}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + tdSql.query(f'select count({k}) from {stbname}_{i} where ts <={self.ts+self.rowNum-1}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + tdSql.query(f'select count({k}) from {stbname}_{i} where ts <={self.ts+self.rowNum-2}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum-1) + def query_ntb(self,k,ntbname,rownum): + tdSql.query(f'select count({k}) from {ntbname}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + tdSql.query(f'select count({k}) from {ntbname} where ts <={self.ts+self.rowNum-1}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + tdSql.query(f'select count({k}) from {ntbname} where ts <={self.ts+self.rowNum-2}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum-1) + def count_query_stb(self,column_dict,tag_dict,stbname,tbnum,rownum): + tdSql.query(f'select count(tbname) from {stbname}') + tdSql.checkEqual(tdSql.queryResult[0][0],tbnum*rownum) + tdSql.query(f'SELECT count(*) from (select distinct tbname from {stbname})') + tdSql.checkEqual(tdSql.queryResult[0][0],tbnum) + for k in column_dict.keys(): + self.query_stb(k,stbname,tbnum,rownum) + for k in tag_dict.keys(): + self.query_stb(k,stbname,tbnum,rownum) + def count_query_ctb(self,column_dict,tag_dict,stbname,tbnum,rownum): + for i in range(tbnum): + tdSql.query(f'select count(tbname) from {stbname}_{i}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + for k in column_dict.keys(): + self.query_ctb(k,i,stbname,rownum) + for k in tag_dict.keys(): + self.query_ctb(k,i,stbname,rownum) + def count_query_ntb(self,column_dict,ntbname,rownum): + tdSql.query(f'select count(tbname) from {ntbname}') + tdSql.checkEqual(tdSql.queryResult[0][0],rownum) + for k in column_dict.keys(): + self.query_ntb(k,ntbname,rownum) + def insert_data(self,column_dict,tbname,row_num): + insert_sql = self.setsql.set_insertsql(column_dict,tbname) + for i in range(row_num): + insert_list = [] + self.setsql.insert_values(column_dict,i,insert_sql,insert_list,self.ts) + def check_ntb(self): tdSql.prepare() - - tdSql.execute('''create table stb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double, - col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(loc nchar(20))''') - tdSql.execute("create table stb_1 using stb tags('beijing')") - tdSql.execute("create table stb_2 using stb tags('shanghai')") - - tdSql.execute('''create table ntb(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double, - col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''') - - for i in range(self.rowNum): - tdSql.execute("insert into stb_1 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)" - % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1)) - tdSql.execute("insert into stb_2 values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)" - % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1)) - - for i in range(self.rowNum): - tdSql.execute("insert into ntb values(%d, %d, %d, %d, %d, %f, %f, %d, 'taosdata%d', '涛思数据%d', %d, %d, %d, %d)" - % (self.ts + i, i + 1, i + 1, i + 1, i + 1, i + 0.1, i + 0.1, i % 2, i + 1, i + 1, i + 1, i + 1, i + 1, i + 1)) - - tdSql.query("select count(*) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(*) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(ts) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(ts) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col1) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col1) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col2) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col2) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col3) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col3) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col4) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col4) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col5) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col5) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col6) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col6) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col7) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col7) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col8) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col8) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col9) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col9) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col11) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col11) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col12) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col12) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col13) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col13) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col14) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col14) from db.stb") - tdSql.checkData(0,0,20) - - - - tdSql.query("select count(ts) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(ts) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col1) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col1) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col2) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col2) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col3) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col3) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col4) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col4) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col5) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col5) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col6) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col6) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col7) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col7) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col8) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col8) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col9) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col9) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col11) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col11) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col12) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col12) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col13) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col13) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col14) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col14) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col1) from stb_1 group by col7") - tdSql.checkRows(2) - - tdSql.execute("insert into stb_1 values(now,null,null,null,null,null,null,null,null,null,null,null,null,null)") - tdSql.query("select count(col1) from stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col1),count(ts) from stb_1") - tdSql.checkData(0,0,10) - tdSql.checkData(0,1,11) - - tdSql.query("select count(col1) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.query("select count(col1),count(ts) from db.stb_1") - tdSql.checkData(0,0,10) - tdSql.checkData(0,1,11) - - tdSql.query("select count(col1) from stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col1),count(ts) from stb") - tdSql.checkData(0,0,20) - tdSql.checkData(0,1,21) - - tdSql.query("select count(col1) from db.stb") - tdSql.checkData(0,0,20) - tdSql.query("select count(col1),count(ts) from db.stb") - tdSql.checkData(0,0,20) - tdSql.checkData(0,1,21) - tdSql.query("select count(col1) from stb_1 group by col7") - tdSql.checkRows(3) - tdSql.query("select count(col1) from stb_2 group by col7") - tdSql.checkRows(2) - tdSql.query("select count(col1) from stb group by col7") - tdSql.checkRows(3) - - - - + tdSql.execute(self.setsql.set_create_normaltable_sql(self.ntbname,self.column_dict)) + tdSql.query(f'select count(tbname) from {self.ntbname}') + tdSql.checkRows(0) + tdSql.execute('flush database db') + tdSql.query(f'select count(tbname) from {self.ntbname}') + tdSql.checkRows(0) + self.insert_data(self.column_dict,self.ntbname,self.rowNum) + self.count_query_ntb(self.column_dict,self.ntbname,self.rowNum) + tdSql.execute('flush database db') + self.count_query_ntb(self.column_dict,self.ntbname,self.rowNum) + tdSql.execute('drop database db') + def check_stb(self): + tdSql.prepare() + tdSql.execute(self.setsql.set_create_stable_sql(self.stbname,self.column_dict,self.tag_dict)) + for i in range(self.tbnum): + tdSql.execute(f'create table {self.stbname}_{i} using {self.stbname} tags({self.tag_values[i]})') + #!TODO + # tdSql.query(f'SELECT count(*) from (select distinct tbname from {self.stbname})') + # tdSql.checkEqual(tdSql.queryResult[0][0],self.tbnum) + tdSql.query(f'select count(tbname) from {self.stbname}') + tdSql.checkRows(0) + tdSql.execute('flush database db') + tdSql.query(f'select count(tbname) from {self.stbname}') + tdSql.checkRows(0) + #!TODO + # tdSql.query(f'SELECT count(*) from (select distinct tbname from {self.stbname})') + # tdSql.checkEqual(tdSql.queryResult[0][0],self.tbnum) + for i in range(self.tbnum): + self.insert_data(self.column_dict,f'{self.stbname}_{i}',self.rowNum) + self.count_query_stb(self.column_dict,self.tag_dict,self.stbname,self.tbnum,self.rowNum) + self.count_query_ctb(self.column_dict,self.tag_dict,self.stbname,self.tbnum,self.rowNum) + tdSql.execute('flush database db') + self.count_query_stb(self.column_dict,self.tag_dict,self.stbname,self.tbnum,self.rowNum) + self.count_query_ctb(self.column_dict,self.tag_dict,self.stbname,self.tbnum,self.rowNum) + tdSql.execute('drop database db') + def run(self): + self.check_stb() + self.check_ntb() def stop(self): tdSql.close() tdLog.success("%s successfully executed" % __file__) diff --git a/tests/system-test/fulltest.sh b/tests/system-test/fulltest.sh index 07c84220f1..becb5db501 100755 --- a/tests/system-test/fulltest.sh +++ b/tests/system-test/fulltest.sh @@ -11,7 +11,7 @@ python3 ./test.py -f 0-others/udfTest.py python3 ./test.py -f 0-others/udf_create.py python3 ./test.py -f 0-others/udf_restart_taosd.py python3 ./test.py -f 0-others/cachelast.py - +python3 ./test.py -f 0-others/sysinfo.py python3 ./test.py -f 0-others/user_control.py python3 ./test.py -f 0-others/fsync.py