From 5f5313b23451b594de751ec5d01d0498a41e34fc Mon Sep 17 00:00:00 2001 From: bryanchang0603 Date: Mon, 7 Jun 2021 11:25:46 +0800 Subject: [PATCH] [TD-4366] modifying test case --- .../manualTest/manual_chang_time_1_2.py | 42 +++++++++++++-- .../manual_chang_time_1_auto_test.py | 54 +++++++++++++++---- .../pytest/manualTest/manual_chang_time_2.py | 46 ++++++++++++++++ 3 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 tests/pytest/manualTest/manual_chang_time_2.py diff --git a/tests/pytest/manualTest/manual_chang_time_1_2.py b/tests/pytest/manualTest/manual_chang_time_1_2.py index 26661f7314..f0f11d3e72 100644 --- a/tests/pytest/manualTest/manual_chang_time_1_2.py +++ b/tests/pytest/manualTest/manual_chang_time_1_2.py @@ -17,6 +17,7 @@ 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 @@ -40,7 +41,24 @@ class TDTestCase: buildPath = root[:len(root)-len("/build/bin")] break return buildPath - + + def getTDenginePath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + print(projPath) + for root, dirs, files in os.walk(projPath): + if ("sim" in dirs): + print(root) + rootRealPath = os.path.realpath(root) + # if ("packaging" not in rootRealPath): + # buildPath = root[:len(root)-len("/build/bin")] + # break + return rootRealPath + def run(self): tdSql.prepare() buildPath = self.getBuildPath() @@ -49,6 +67,12 @@ class TDTestCase: else: tdLog.info("taosd found in %s" % buildPath) binPath = buildPath+ "/build/bin/" + TDenginePath = self.getTDenginePath() + print('TD '+ TDenginePath) + if (TDenginePath == ""): + tdLog.exit("TDengine not found!") + else: + tdLog.info("TDengine found in %s" % TDenginePath) ## change system time to 2020/10/20 os.system ('timedatectl set-ntp off') @@ -58,7 +82,13 @@ class TDTestCase: #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'{TDenginePath}/sim/dnode1/data/vnode/vnode2/tsdb/data'] + result = subprocess.run(commandArray, stdout=subprocess.PIPE).stdout.decode('utf-8') + print(result.count('data')) + if result.count('data') != 11: + tdLog.exit('wrong number of files') + else: + tdLog.info("data file number correct") 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)) @@ -73,7 +103,13 @@ class TDTestCase: 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") + commandArray = ['ls', '-l', f'{TDenginePath}/sim/dnode1/data/vnode/vnode2/tsdb/data'] + result = subprocess.run(commandArray, stdout=subprocess.PIPE).stdout.decode('utf-8') + print(result.count('data')) + if result.count('data') != 7: + tdLog.exit('wrong number of files') + else: + tdLog.info("data file number correct") diff --git a/tests/pytest/manualTest/manual_chang_time_1_auto_test.py b/tests/pytest/manualTest/manual_chang_time_1_auto_test.py index 86bc77404b..a9e8935df4 100644 --- a/tests/pytest/manualTest/manual_chang_time_1_auto_test.py +++ b/tests/pytest/manualTest/manual_chang_time_1_auto_test.py @@ -26,6 +26,23 @@ class TDTestCase: tdLog.debug("start to execute %s" % __file__) tdSql.init(conn.cursor(), logSql) + def getTDenginePath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + print(projPath) + for root, dirs, files in os.walk(projPath): + if ("sim" in dirs): + print(root) + rootRealPath = os.path.realpath(root) + # if ("packaging" not in rootRealPath): + # buildPath = root[:len(root)-len("/build/bin")] + # break + return rootRealPath + def getBuildPath(self): selfPath = os.path.dirname(os.path.realpath(__file__)) @@ -41,15 +58,21 @@ class TDTestCase: buildPath = root[:len(root)-len("/build/bin")] break return buildPath - + def run(self): - #tdSql.prepare() + tdSql.prepare() buildPath = self.getBuildPath() if (buildPath == ""): tdLog.exit("taosd not found!") else: tdLog.info("taosd found in %s" % buildPath) binPath = buildPath+ "/build/bin/" + TDenginePath = self.getTDenginePath() + print('TD '+ TDenginePath) + if (TDenginePath == ""): + tdLog.exit("TDengine not found!") + else: + tdLog.info("TDengine found in %s" % TDenginePath) ## change system time to 2020/10/20 os.system ('timedatectl set-ntp off') @@ -58,15 +81,26 @@ class TDTestCase: #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'] + os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_A.json" % binPath) + commandArray = ['ls', '-l', f'{TDenginePath}/sim/dnode1/data/vnode/vnode2/tsdb/data'] 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)) + print(result.count('data')) + if result.count('data') != 11: + tdLog.exit('wrong number of files') + else: + tdLog.info("data file number correct") + + os.system ('timedatectl set-time 2020-10-25') + os.system("%staosdemo -f tools/taosdemoAllTest/manual_change_time_1_1_B.json" % binPath) + commandArray = ['ls', '-l', f'{TDenginePath}/sim/dnode1/data/vnode/vnode2/tsdb/data'] + result = subprocess.run(commandArray, stdout=subprocess.PIPE).stdout.decode('utf-8') + print(result.count('data')) + if result.count('data') != 7: + tdLog.exit('wrong number of files') + else: + tdLog.info("data file number correct") + tdSql.query('select first(ts) from stb_0') + tdSql.checkData(0,0,datetime(2020,10,14,8,0,0,0)) def stop(self): tdSql.close() diff --git a/tests/pytest/manualTest/manual_chang_time_2.py b/tests/pytest/manualTest/manual_chang_time_2.py new file mode 100644 index 0000000000..5d60d557c0 --- /dev/null +++ b/tests/pytest/manualTest/manual_chang_time_2.py @@ -0,0 +1,46 @@ +################################################################### +# 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 fabric import Connection +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 + +# class VMPnode + +# ##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 run(self): +# return + + + +# def stop(self): +# tdSql.close() +# tdLog.debug("%s alter block manual check finish" % __file__) + + +# tdCases.addWindows(__file__, TDTestCase()) +# tdCases.addLinux(__file__, TDTestCase()) + +conn = conn = Connection("{}@{}".format('ubuntu', "lyq-q-1"), connect_kwargs={"password": "{}".format('tbase125!')}) +conn.run('sudo timedatectl set-ntp off') +conn.run('sudo timedatectl set-time 2020-10-20') \ No newline at end of file -- GitLab