From 3b1cd27367bc730c4b1a6f351bd572a3d88a3fc1 Mon Sep 17 00:00:00 2001 From: jiacy-jcy <714897623@qq.com> Date: Tue, 15 Nov 2022 09:52:34 +0800 Subject: [PATCH 1/2] test:add test case for future timestamp insert --- tests/system-test/1-insert/InsertFuturets.py | 106 +++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/system-test/1-insert/InsertFuturets.py diff --git a/tests/system-test/1-insert/InsertFuturets.py b/tests/system-test/1-insert/InsertFuturets.py new file mode 100644 index 0000000000..a2f335e626 --- /dev/null +++ b/tests/system-test/1-insert/InsertFuturets.py @@ -0,0 +1,106 @@ +################################################################### +# 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 -*- + + +import math +from util.log import * +from util.cases import * +from util.sql import * +from util.common import * +from util.sqlset import * +import time +import datetime +class TDTestCase: + def init(self, conn, logSql, replicaVar=1): + self.replicaVar = int(replicaVar) + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor()) + self.timestamp_ms = int(round(time.time()*1000)) + self.timestamp_us = int(round(time.time()*1000000)) + self.timestamp_ns = int(time.time_ns()) + self.ms_boundary = 31556995200000 + self.us_boundary = 31556995200000000 + self.ns_boundary = 9214646400000000000 + self.ntbname = 'ntb' + self.stbname = 'stb' + self.ctbname = 'ctb' + def insert_check(self,timestamp,tbname): + tdSql.execute(f'insert into {tbname} values({timestamp},1)') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkEqual(tdSql.queryResult[0][1],1) + tdSql.execute('flush database db') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkEqual(tdSql.queryResult[0][1],1) + tdSql.execute(f'insert into {tbname} values({timestamp},2)') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkEqual(tdSql.queryResult[0][1],2) + tdSql.execute('flush database db') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkEqual(tdSql.queryResult[0][1],2) + tdSql.execute(f'delete from {tbname} where ts = {timestamp}') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkRows(0) + tdSql.execute('flush database db') + tdSql.query(f'select * from {tbname} where ts = {timestamp}') + tdSql.checkRows(0) + + def insert_ms(self): + tdSql.prepare() + tdSql.execute('use db') + tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)') + timestamp = random.randint(self.timestamp_ms,self.ms_boundary-1) + self.insert_check(timestamp,self.ntbname) + self.insert_check(self.ms_boundary,self.ntbname) + tdSql.error(f'insert into {self.ntbname} values({self.ms_boundary+1},1)') + tdSql.execute(f'create table {self.stbname} (ts timestamp,c0 int) tags(t0 int)') + tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags (1)') + self.insert_check(timestamp,self.ctbname) + self.insert_check(self.ms_boundary,self.ctbname) + tdSql.error(f'insert into {self.ctbname} values({self.ms_boundary+1},1)') + def insert_us(self): + tdSql.execute('create database db1 precision "us"') + tdSql.execute('use db1') + tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)') + timestamp = random.randint(self.timestamp_us,self.us_boundary-1) + self.insert_check(timestamp,self.ntbname) + self.insert_check(self.us_boundary,self.ntbname) + tdSql.error(f'insert into {self.ntbname} values({self.us_boundary+1},1)') + tdSql.execute(f'create table {self.stbname} (ts timestamp,c0 int) tags(t0 int)') + tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags (1)') + self.insert_check(timestamp,self.ctbname) + self.insert_check(self.us_boundary,self.ctbname) + tdSql.error(f'insert into {self.ctbname} values({self.us_boundary+1},1)') + def insert_ns(self): + tdSql.execute('create database db2 precision "ns"') + tdSql.execute('use db2') + tdSql.execute(f'create table {self.ntbname} (ts timestamp,c0 int)') + timestamp = random.randint(self.timestamp_ns,self.ns_boundary-1) + self.insert_check(timestamp,self.ntbname) + self.insert_check(self.ns_boundary,self.ntbname) + tdSql.error(f'insert into {self.ntbname} values({self.ns_boundary+1},1)') + tdSql.execute(f'create table {self.stbname} (ts timestamp,c0 int) tags(t0 int)') + tdSql.execute(f'create table {self.ctbname} using {self.stbname} tags (1)') + self.insert_check(timestamp,self.ctbname) + self.insert_check(self.ns_boundary,self.ctbname) + tdSql.error(f'insert into {self.ctbname} values({self.ns_boundary+1},1)') + def run(self): + self.insert_ms() + self.insert_us() + self.insert_ns() + pass + 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 From 32550be9b6ca20848f47749a9d5095fc12ff1f33 Mon Sep 17 00:00:00 2001 From: jiacy-jcy <714897623@qq.com> Date: Tue, 15 Nov 2022 09:59:10 +0800 Subject: [PATCH 2/2] test:add test case into ci --- tests/parallel_test/cases.task | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index fac4210d88..52bd3bb852 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -432,6 +432,7 @@ ,,,system-test,python3 ./test.py -f 1-insert/update_data_muti_rows.py ,,,system-test,python3 ./test.py -f 1-insert/db_tb_name_check.py ,,,system-test,python3 ./test.py -f 1-insert/database_pre_suf.py +,,,system-test,python3 ./test.py -f 1-insert/InsertFuturets.py ,,,system-test,python3 ./test.py -f 0-others/show.py ,,,system-test,python3 ./test.py -f 2-query/abs.py ,,,system-test,python3 ./test.py -f 2-query/abs.py -R