-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: taosdump start-time end-time cmdline argument parsing (#593)
* fix: taosdump start-time end-time cmdline argument parsing * test: add test case to test start-time and end-time * fix: time argument parse logic * fix: refactor time convert func
- Loading branch information
1 parent
ca187f3
commit 0111c66
Showing
3 changed files
with
332 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
################################################################### | ||
# 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 os | ||
from util.log import * | ||
from util.cases import * | ||
from util.sql import * | ||
from util.dnodes import * | ||
|
||
|
||
class TDTestCase: | ||
def caseDescription(self): | ||
""" | ||
case1<sdsang>: [TS-2769] taosdump start-time end-time test | ||
""" | ||
|
||
def init(self, conn, logSql): | ||
tdLog.debug("start to execute %s" % __file__) | ||
tdSql.init(conn.cursor(), logSql) | ||
self.tmpdir = "tmp" | ||
|
||
def getPath(self, tool="taosdump"): | ||
selfPath = os.path.dirname(os.path.realpath(__file__)) | ||
|
||
if "community" in selfPath: | ||
projPath = selfPath[: selfPath.find("community")] | ||
elif "src" in selfPath: | ||
projPath = selfPath[: selfPath.find("src")] | ||
elif "/tools/" in selfPath: | ||
projPath = selfPath[: selfPath.find("/tools/")] | ||
elif "/tests/" in selfPath: | ||
projPath = selfPath[: selfPath.find("/tests/")] | ||
else: | ||
tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) | ||
projPath = "/usr/local/taos/bin/" | ||
|
||
paths = [] | ||
for root, dummy, files in os.walk(projPath): | ||
if (tool) in files: | ||
rootRealPath = os.path.dirname(os.path.realpath(root)) | ||
if "packaging" not in rootRealPath: | ||
paths.append(os.path.join(root, tool)) | ||
break | ||
if len(paths) == 0: | ||
return "" | ||
return paths[0] | ||
|
||
def run(self): | ||
binPath = self.getPath() | ||
if binPath == "": | ||
tdLog.exit("taosdump not found!") | ||
else: | ||
tdLog.info("taosdump found in %s" % binPath) | ||
|
||
tdSql.prepare() | ||
|
||
tdSql.execute("drop database if exists db") | ||
tdSql.execute("create database db keep 3649 ") | ||
|
||
tdSql.execute("use db") | ||
tdSql.execute( | ||
"create table t1 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"create table t2 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"create table t3 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"insert into t1 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
tdSql.execute( | ||
"insert into t2 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
tdSql.execute( | ||
"insert into t3 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
|
||
# sys.exit(1) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t1 -o %s -T 1 -S 2023-02-28T12:00:01.997+0800 -E 2023-02-28T12:00:03.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t1") | ||
|
||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t1") | ||
tdSql.checkData(0, 0, 3) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t2 -o %s -T 1 -S 2023-02-28T12:00:01.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t2") | ||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t2") | ||
tdSql.checkData(0, 0, 4) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t3 -o %s -T 1 -E 2023-02-28T12:00:03.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t3") | ||
|
||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t3") | ||
tdSql.checkData(0, 0, 4) | ||
|
||
def stop(self): | ||
tdSql.close() | ||
tdLog.success("%s successfully executed" % __file__) | ||
|
||
|
||
tdCases.addWindows(__file__, TDTestCase()) | ||
tdCases.addLinux(__file__, TDTestCase()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
################################################################### | ||
# 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 os | ||
from util.log import * | ||
from util.cases import * | ||
from util.sql import * | ||
from util.dnodes import * | ||
|
||
|
||
class TDTestCase: | ||
def caseDescription(self): | ||
""" | ||
case1<sdsang>: [TS-2769] taosdump start-time end-time test | ||
""" | ||
|
||
def init(self, conn, logSql): | ||
tdLog.debug("start to execute %s" % __file__) | ||
tdSql.init(conn.cursor(), logSql) | ||
self.tmpdir = "tmp" | ||
|
||
def getPath(self, tool="taosdump"): | ||
selfPath = os.path.dirname(os.path.realpath(__file__)) | ||
|
||
if "community" in selfPath: | ||
projPath = selfPath[: selfPath.find("community")] | ||
elif "src" in selfPath: | ||
projPath = selfPath[: selfPath.find("src")] | ||
elif "/tools/" in selfPath: | ||
projPath = selfPath[: selfPath.find("/tools/")] | ||
elif "/tests/" in selfPath: | ||
projPath = selfPath[: selfPath.find("/tests/")] | ||
else: | ||
tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) | ||
projPath = "/usr/local/taos/bin/" | ||
|
||
paths = [] | ||
for root, dummy, files in os.walk(projPath): | ||
if (tool) in files: | ||
rootRealPath = os.path.dirname(os.path.realpath(root)) | ||
if "packaging" not in rootRealPath: | ||
paths.append(os.path.join(root, tool)) | ||
break | ||
if len(paths) == 0: | ||
return "" | ||
return paths[0] | ||
|
||
def run(self): | ||
binPath = self.getPath() | ||
if binPath == "": | ||
tdLog.exit("taosdump not found!") | ||
else: | ||
tdLog.info("taosdump found in %s" % binPath) | ||
|
||
tdSql.prepare() | ||
|
||
tdSql.execute("drop database if exists db") | ||
tdSql.execute("create database db keep 3649 ") | ||
|
||
tdSql.execute("use db") | ||
tdSql.execute( | ||
"create table t1 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"create table t2 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"create table t3 (ts timestamp, n int)" | ||
) | ||
tdSql.execute( | ||
"insert into t1 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
tdSql.execute( | ||
"insert into t2 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
tdSql.execute( | ||
"insert into t3 values('2023-02-28 12:00:00.997',11)('2023-02-28 12:00:01.997',12)('2023-02-28 12:00:02.997',15)('2023-02-28 12:00:03.997',16)('2023-02-28 12:00:04.997',17)" | ||
) | ||
|
||
# sys.exit(1) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t1 -o %s -T 1 --start-time=2023-02-28T12:00:01.997+0800 --end-time=2023-02-28T12:00:03.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t1") | ||
|
||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t1") | ||
tdSql.checkData(0, 0, 3) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t2 -o %s -T 1 --start-time=2023-02-28T12:00:01.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t2") | ||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t2") | ||
tdSql.checkData(0, 0, 4) | ||
|
||
if not os.path.exists(self.tmpdir): | ||
os.makedirs(self.tmpdir) | ||
else: | ||
print("directory exists") | ||
os.system("rm -rf %s" % self.tmpdir) | ||
os.makedirs(self.tmpdir) | ||
|
||
os.system("%s db t3 -o %s -T 1 --end-time=2023-02-28T12:00:03.997+0800 " % (binPath, self.tmpdir)) | ||
|
||
tdSql.execute("drop table t3") | ||
|
||
os.system("%s -i %s -T 1" % (binPath, self.tmpdir)) | ||
|
||
tdSql.query("select count(*) from db.t3") | ||
tdSql.checkData(0, 0, 4) | ||
|
||
def stop(self): | ||
tdSql.close() | ||
tdLog.success("%s successfully executed" % __file__) | ||
|
||
|
||
tdCases.addWindows(__file__, TDTestCase()) | ||
tdCases.addLinux(__file__, TDTestCase()) |