From ed50bd47c2cdc92507dc0df68fdff880e07ef1c2 Mon Sep 17 00:00:00 2001 From: bryanchang0603 Date: Mon, 7 Jun 2021 09:32:23 +0800 Subject: [PATCH] [TD-4473] updating test cases --- .../manualTest/manual_chang_time_1_1.py | 28 +++++- .../manualTest/manual_chang_time_1_2.py | 86 +++++++++++++++++++ .../manual_chang_time_1_auto_test.py | 77 +++++++++++++++++ .../manual_change_time_1_1_B.json | 4 +- 4 files changed, 191 insertions(+), 4 deletions(-) create mode 100644 tests/pytest/manualTest/manual_chang_time_1_2.py create mode 100644 tests/pytest/manualTest/manual_chang_time_1_auto_test.py diff --git a/tests/pytest/manualTest/manual_chang_time_1_1.py b/tests/pytest/manualTest/manual_chang_time_1_1.py index 0d82f7c871..69ea6f349b 100644 --- a/tests/pytest/manualTest/manual_chang_time_1_1.py +++ b/tests/pytest/manualTest/manual_chang_time_1_1.py @@ -16,6 +16,8 @@ from util.log import * from util.cases import * from util.sql import * from util.dnodes import tdDnodes +from datetime import datetime +import subprocess ##TODO: auto test version is currently unsupported, need to come up with # an auto test version in the future @@ -54,9 +56,31 @@ class TDTestCase: os.system ('timedatectl set-time 2020-10-20') #run taosdemo to insert data. one row per second from 2020/10/11 to 2020/10/20 - # + #11 data files should be generated + #vnode at TDinternal/community/sim/dnode1/data/vnode os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_A.json" % binPath) - input("please check memory usage for taosd. After checking, press enter") + input("please the data file. After checking, press enter") + + tdSql.query('select first(ts) from stb_0') + tdSql.checkData(0,0,datetime(2020,10,11,0,0,0,0)) + tdSql.query('select last(ts) from stb_0') + tdSql.checkData(0,0,datetime(2020,10,20,23,59,59,0)) + + os.system ('timedatectl set-time 2020-10-25') + + #run taosdemo to insert data. one row per second from 2020/10/16 to 2020/10/20 + #4 oldest data file should be removed from tsdb/data + #vnode at TDinternal/community/sim/dnode1/data/vnode + #7 data file should be found + os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_B.json" % binPath) + input("please the data file. After checking, press enter") + + tdSql.query('select first(ts) from stb_0') + tdSql.checkData(0,0,datetime(2020,10,14,8,0,0,0)) + + ##test results + #2021/06/05 first check: 11 data files second check: 7 data files + # confirm with the assumption Baosheng Chang def stop(self): tdSql.close() diff --git a/tests/pytest/manualTest/manual_chang_time_1_2.py b/tests/pytest/manualTest/manual_chang_time_1_2.py new file mode 100644 index 0000000000..26661f7314 --- /dev/null +++ b/tests/pytest/manualTest/manual_chang_time_1_2.py @@ -0,0 +1,86 @@ +################################################################### +# 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 sys +from util.log import * +from util.cases import * +from util.sql import * +from util.dnodes import tdDnodes +from datetime import datetime + +##TODO: auto test version is currently unsupported, need to come up with +# an auto test version in the future +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run(self): + tdSql.prepare() + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + + ## change system time to 2020/10/20 + os.system ('timedatectl set-ntp off') + os.system ('timedatectl set-time 2020-10-20') + + #run taosdemo to insert data. one row per second from 2020/10/11 to 2020/10/20 + #11 data files should be generated + #vnode at TDinternal/community/sim/dnode1/data/vnode + os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_A.json" % binPath) + input("please the data file. After checking, press enter") + + tdSql.query('select first(ts) from stb_0') #check the last data in the database + tdSql.checkData(0,0,datetime(2020,10,11,0,0,0,0)) + + os.system ('timedatectl set-time 2020-10-25') + + #restart taosd + #4 oldest data file should be removed from tsdb/data + #vnode at TDinternal/community/sim/dnode1/data/vnode + #7 data file should be found + tdDnodes.stop(1) + tdDnodes.start(1) + tdSql.query('select first(ts) from stb_0') + tdSql.checkData(0,0,datetime(2020,10,14,8,0,0,0)) #check the last data in the database + input("please the data file. After checking, press enter") + + + + def stop(self): + tdSql.close() + tdLog.debug("%s alter block manual check finish" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/manualTest/manual_chang_time_1_auto_test.py b/tests/pytest/manualTest/manual_chang_time_1_auto_test.py new file mode 100644 index 0000000000..86bc77404b --- /dev/null +++ b/tests/pytest/manualTest/manual_chang_time_1_auto_test.py @@ -0,0 +1,77 @@ +################################################################### +# 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 sys +from util.log import * +from util.cases import * +from util.sql import * +from util.dnodes import tdDnodes +from datetime import datetime +import subprocess + +##TODO: auto test version is currently unsupported, need to come up with +# an auto test version in the future +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run(self): + #tdSql.prepare() + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + + ## change system time to 2020/10/20 + os.system ('timedatectl set-ntp off') + os.system ('timedatectl set-time 2020-10-20') + + #run taosdemo to insert data. one row per second from 2020/10/11 to 2020/10/20 + #11 data files should be generated + #vnode at TDinternal/community/sim/dnode1/data/vnode + #os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_A.json" % binPath) + #input("please the data file. After checking, press enter") + commandArray = ['ls', '-l', f'{binPath}sim/dnode1/data/vnode/vnode2/tsdb/data', '|grep', '\'data\'', '|wc', '-l'] + result = subprocess.run(commandArray, stdout=subprocess.PIPE).stdout.decode('utf-8') + print(result) + # tdSql.query('select first(ts) from stb_0') + # tdSql.checkData(0,0,datetime(2020,10,11,0,0,0,0)) + # tdSql.query('select last(ts) from stb_0') + # tdSql.checkData(0,0,datetime(2020,10,20,23,59,59,0)) + + def stop(self): + tdSql.close() + tdLog.debug("%s alter block manual check finish" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/tools/taosdemoAllTest/manual_change_time_1_1_B.json b/tests/pytest/tools/taosdemoAllTest/manual_change_time_1_1_B.json index 846730acfb..aeee6322e5 100644 --- a/tests/pytest/tools/taosdemoAllTest/manual_change_time_1_1_B.json +++ b/tests/pytest/tools/taosdemoAllTest/manual_change_time_1_1_B.json @@ -40,7 +40,7 @@ "batch_create_tbl_num": 20, "data_source": "rand", "insert_mode": "taosc", - "insert_rows": 86400, + "insert_rows": 432000, "childtable_limit": 1, "childtable_offset":0, "interlace_rows": 0, @@ -49,7 +49,7 @@ "disorder_ratio": 0, "disorder_range": 1000, "timestamp_step": 1000, - "start_timestamp": "2020-10-17 00:00:00.000", + "start_timestamp": "2020-10-16 00:00:00.500", "sample_format": "csv", "sample_file": "./tools/taosdemoAllTest/sample.csv", "tags_file": "", -- GitLab