fix: windows test (#20256)

* fix: windows sim test

* fix: windows sim test

* fix: random on windows

* fix: taosd online check

* fix: windows path in python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: windows python test

* fix: make_install.bat

* fix: python test

* fix: jdbc test

* fix: develop test

* fix: develop test

* fix:add log

* test:add win case file

* test:add win case file

* test:add win case file

* fix: python test get taosBenchmark path

* test:add win case file

* test:comment some failed cases in win

* test:add win case file

* test:add win case file

* test:comment some win case file

* test:add some win case file

---------

Co-authored-by: wangmm0220 <wangmm0220@gmail.com>
Co-authored-by: chenhaoran <haoran920c@163.com>
This commit is contained in:
Xuefeng Tan 2023-03-16 10:18:06 +08:00 committed by GitHub
parent d270f1bccc
commit 449f7115e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
57 changed files with 1744 additions and 327 deletions

View File

@ -124,9 +124,18 @@ call :stop_delete
call :check_svc taosd call :check_svc taosd
call :check_svc taosadapter call :check_svc taosadapter
copy /y C:\\TDengine\\driver\\taos.dll C:\\Windows\\System32 > nul if exist c:\\windows\\sysnative (
if exist C:\\TDengine\\driver\\taosws.dll ( echo x86
copy /y C:\\TDengine\\driver\\taosws.dll C:\\Windows\\System32 > nul copy /y C:\\TDengine\\driver\\taos.dll %windir%\\sysnative > nul
if exist C:\\TDengine\\driver\\taosws.dll (
copy /y C:\\TDengine\\driver\\taosws.dll %windir%\\sysnative > nul
)
) else (
echo x64
copy /y C:\\TDengine\\driver\\taos.dll C:\\Windows\\System32 > nul
if exist C:\\TDengine\\driver\\taosws.dll (
copy /y C:\\TDengine\\driver\\taosws.dll C:\\Windows\\System32 > nul
)
) )
rem // create services rem // create services

View File

@ -25,7 +25,7 @@ int32_t qsortHelper(const void* p1, const void* p2, const void* param) {
// todo refactor: 1) move away; 2) use merge sort instead; 3) qsort is not a stable sort actually. // todo refactor: 1) move away; 2) use merge sort instead; 3) qsort is not a stable sort actually.
void taosSort(void* base, int64_t sz, int64_t width, __compar_fn_t compar) { void taosSort(void* base, int64_t sz, int64_t width, __compar_fn_t compar) {
#ifdef _ALPINE #if defined(WINDOWS) || defined(_ALPINE)
void* param = compar; void* param = compar;
taosqsort(base, sz, width, param, qsortHelper); taosqsort(base, sz, width, param, qsortHelper);
#else #else

View File

@ -31,6 +31,8 @@ class TDTestCase:
tdSql.init(conn.cursor()) tdSql.init(conn.cursor())
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -33,6 +33,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -29,25 +29,23 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if ("community" in selfPath):
projPath = selfPath[: selfPath.find("community")] projPath = selfPath[:selfPath.find("community")]
elif "src" in selfPath:
projPath = selfPath[: selfPath.find("src")]
elif "/tools/" in selfPath:
projPath = selfPath[: selfPath.find("/tools/")]
else: else:
projPath = selfPath[: selfPath.find("tests")] projPath = selfPath[:selfPath.find("tests")]
paths = [] paths = []
for root, dirs, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if (tool) in files: if ((tool) in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if "packaging" not in rootRealPath: if ("packaging" not in rootRealPath):
paths.append(os.path.join(root, tool)) paths.append(os.path.join(root, tool))
break break
if len(paths) == 0: if (len(paths) == 0):
tdLog.exit("taosBenchmark not found!") tdLog.exit("taosBenchmark not found!")
return return
else: else:

View File

@ -33,6 +33,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if "community" in selfPath:

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -35,6 +35,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -29,28 +29,23 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if ("community" in selfPath):
projPath = selfPath[: selfPath.find("community")] 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: else:
tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) projPath = selfPath[:selfPath.find("tests")]
projPath = "/usr/local/taos/bin/"
paths = [] paths = []
for root, dummy, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if (tool) in files: if ((tool) in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if "packaging" not in rootRealPath: if ("packaging" not in rootRealPath):
paths.append(os.path.join(root, tool)) paths.append(os.path.join(root, tool))
break break
if len(paths) == 0: if (len(paths) == 0):
tdLog.exit("taosBenchmark not found!") tdLog.exit("taosBenchmark not found!")
return return
else: else:

View File

@ -30,6 +30,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -31,6 +31,8 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if ("community" in selfPath): if ("community" in selfPath):

View File

@ -32,30 +32,28 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if ("community" in selfPath):
projPath = selfPath[: selfPath.find("community")] 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: else:
tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) projPath = selfPath[:selfPath.find("tests")]
projPath = "/usr/local/taos/bin/"
paths = [] paths = []
for root, dirs, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if (tool) in files: if ((tool) in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if "packaging" not in rootRealPath: if ("packaging" not in rootRealPath):
paths.append(os.path.join(root, tool)) paths.append(os.path.join(root, tool))
break break
if len(paths) == 0: if (len(paths) == 0):
return "" tdLog.exit("taosBenchmark not found!")
return paths[0] return
else:
tdLog.info("taosBenchmark found in %s" % paths[0])
return paths[0]
# 获取taosc接口查询的结果文件中的内容,返回每行数据,并断言数据的第一列内容。 # 获取taosc接口查询的结果文件中的内容,返回每行数据,并断言数据的第一列内容。
def assertfileDataTaosc(self, filename, expectResult): def assertfileDataTaosc(self, filename, expectResult):

View File

@ -29,27 +29,23 @@ class TDTestCase:
tdSql.init(conn.cursor(), logSql) tdSql.init(conn.cursor(), logSql)
def getPath(self, tool="taosBenchmark"): def getPath(self, tool="taosBenchmark"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if ("community" in selfPath):
projPath = selfPath[: selfPath.find("community")] 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: else:
tdLog.exit("cannot found %s in path: %s, use system's" % (tool, selfPath)) projPath = selfPath[:selfPath.find("tests")]
paths = [] paths = []
for root, dirs, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if (tool) in files: if ((tool) in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if "packaging" not in rootRealPath: if ("packaging" not in rootRealPath):
paths.append(os.path.join(root, tool)) paths.append(os.path.join(root, tool))
break break
if len(paths) == 0: if (len(paths) == 0):
tdLog.exit("taosBenchmark not found!") tdLog.exit("taosBenchmark not found!")
return return
else: else:

View File

@ -30,30 +30,28 @@ class TDTestCase:
self.tmpdir = "tmp" self.tmpdir = "tmp"
def getPath(self, tool="taosdump"): def getPath(self, tool="taosdump"):
if (platform.system().lower() == 'windows'):
tool = tool + ".exe"
selfPath = os.path.dirname(os.path.realpath(__file__)) selfPath = os.path.dirname(os.path.realpath(__file__))
if "community" in selfPath: if ("community" in selfPath):
projPath = selfPath[: selfPath.find("community")] 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: else:
tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) projPath = selfPath[:selfPath.find("tests")]
projPath = "/usr/local/taos/bin"
paths = [] paths = []
for root, dummy, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if (tool) in files: if ((tool) in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if "packaging" not in rootRealPath: if ("packaging" not in rootRealPath):
paths.append(os.path.join(root, tool)) paths.append(os.path.join(root, tool))
break break
if len(paths) == 0: if (len(paths) == 0):
return "" tdLog.exit("taosBenchmark not found!")
return paths[0] return
else:
tdLog.info("taosBenchmark found in %s" % paths[0])
return paths[0]
def run(self): def run(self):
tdSql.prepare() tdSql.prepare()

View File

@ -316,9 +316,9 @@ if __name__ == "__main__":
print(r) print(r)
else: else:
pass pass
if restful:
tAdapter.init(deployPath, masterIp) tAdapter.init(deployPath, masterIp)
tAdapter.stop(force_kill=True) tAdapter.stop(force_kill=True)
if dnodeNums == 1: if dnodeNums == 1:
tdDnodes.deploy(1, updateCfgDict) tdDnodes.deploy(1, updateCfgDict)

View File

@ -0,0 +1,13 @@
python3 ./test.py -f 2-query/table_count_scan.py
python3 ./test.py -f 2-query/show_create_db.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/auto_create_table_json.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/custom_col_tag.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/default_json.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/demo.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/insert_alltypes_json.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/invalid_commandline.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/json_tag.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/query_json.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/sample_csv_json.py
python3 ./test.py -f 5-taos-tools/taosbenchmark/taosdemoTestQueryWithJson.py -R
python3 ./test.py -f 5-taos-tools/taosbenchmark/telnet_tcp.py -R

View File

@ -6,15 +6,10 @@ cd ../../docs/examples/java
mvn clean test > jdbc-out.log 2>&1 mvn clean test > jdbc-out.log 2>&1
tail -n 20 jdbc-out.log tail -n 20 jdbc-out.log
totalJDBCCases=`grep 'Tests run' jdbc-out.log | awk -F"[:,]" 'END{ print $2 }'`
cases=`grep 'Tests run' jdbc-out.log | awk 'END{print $3}'` failed=`grep 'Tests run' jdbc-out.log | awk -F"[:,]" 'END{ print $4 }'`
totalJDBCCases=`echo ${cases/%,}` error=`grep 'Tests run' jdbc-out.log | awk -F"[:,]" 'END{ print $6 }'`
failed=`grep 'Tests run' jdbc-out.log | awk 'END{print $5}'` totalJDBCFailed=`expr $failed + $error`
JDBCFailed=`echo ${failed/%,}`
error=`grep 'Tests run' jdbc-out.log | awk 'END{print $7}'`
JDBCError=`echo ${error/%,}`
totalJDBCFailed=`expr $JDBCFailed + $JDBCError`
totalJDBCSuccess=`expr $totalJDBCCases - $totalJDBCFailed` totalJDBCSuccess=`expr $totalJDBCCases - $totalJDBCFailed`
if [ "$totalJDBCSuccess" -gt "0" ]; then if [ "$totalJDBCSuccess" -gt "0" ]; then

View File

@ -0,0 +1,58 @@
case_file="cases_temp_file"
parm_path=$(dirname $0)
parm_path=$(pwd ${parm_path})
echo "execute path:${parm_path}"
cd ${parm_path}
cp cases.task ${case_file}
sed -i '/^$/d' ${case_file}
sed -i '$a\%%FINISHED%%' ${case_file}
utest="unit-test"
tsimtest="script"
systest="system-test"
devtest="develop-test"
doctest="docs-examples-test"
rm -rf win-${utest}.log win-${tsimtest}.log win-${systest}.log win-${devtest}.log win-${doctest}.log
rm -rf ${parm_path}/../${utest}/win-test-file ${parm_path}/../${tsimtest}/win-test-file ${parm_path}/../${systest}/win-test-file ${parm_path}/../${devtest}/win-test-file
while read -r line
do
echo "$line"|grep -q "^#"
if [ $? -eq 0 ]; then
continue
fi
exec_dir=$(echo "$line"|cut -d ',' -f4)
case_cmd=$(echo "$line"|cut -d ',' -f5)
if [[ "${exec_dir}" == "${utest}" ]]; then
echo ${case_cmd} >> win-${utest}.log
continue
fi
if [[ "${exec_dir}" == "${tsimtest}" ]]; then
echo ${case_cmd} >> win-${tsimtest}.log
continue
fi
if [[ "${exec_dir}" == "${systest}" ]]; then
if [[ "${case_cmd}" =~ "pytest.sh" ]]; then
case_cmd=$(echo "$case_cmd"|cut -d ' ' -f 2-)
echo ${case_cmd} >> win-${systest}.log
else
echo ${case_cmd} >> win-${systest}.log
fi
continue
fi
if [[ "${exec_dir}" == "${devtest}" ]]; then
echo ${case_cmd} >> win-${devtest}.log
continue
fi
if [[ "${exec_dir}" == "${doctest}" ]]; then
echo ${case_cmd} >> win-${doctest}.log
continue
fi
done < ${case_file}
mv win-${utest}.log ${parm_path}/../${utest}/win-test-file
mv win-${tsimtest}.log ${parm_path}/../${tsimtest}/win-test-file
mv win-${systest}.log ${parm_path}/../${systest}/win-test-file
mv win-${devtest}.log ${parm_path}/../${devtest}/win-test-file
rm -rf ${case_file}

View File

@ -94,14 +94,14 @@ class TDCases:
tdLog.notice("total %d Windows test case(s) executed" % (runNum)) tdLog.notice("total %d Windows test case(s) executed" % (runNum))
def runOneWindows(self, conn, fileName): def runOneWindows(self, conn, fileName, replicaVar=1):
testModule = self.__dynamicLoadModule(fileName) testModule = self.__dynamicLoadModule(fileName)
runNum = 0 runNum = 0
for tmp in self.windowsCases: for tmp in self.windowsCases:
if tmp.name.find(fileName) != -1: if tmp.name.find(fileName) != -1:
case = testModule.TDTestCase() case = testModule.TDTestCase()
case.init(conn, self._logSql) case.init(conn, self._logSql,replicaVar)
try: try:
case.run() case.run()
except Exception as e: except Exception as e:

View File

@ -46,11 +46,11 @@ class TDSimClient:
self.path = path self.path = path
def getLogDir(self): def getLogDir(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
return self.logDir return self.logDir
def getCfgDir(self): def getCfgDir(self):
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
return self.cfgDir return self.cfgDir
def setTestCluster(self, value): def setTestCluster(self, value):
@ -65,9 +65,9 @@ class TDSimClient:
tdLog.exit(cmd) tdLog.exit(cmd)
def deploy(self): def deploy(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
self.cfgPath = "%s/sim/psim/cfg/taos.cfg" % (self.path) self.cfgPath = os.path.join(self.path,"sim","psim","cfg","taos.cfg")
cmd = "rm -rf " + self.logDir cmd = "rm -rf " + self.logDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -131,11 +131,10 @@ class TDDnode:
return totalSize return totalSize
def deploy(self): def deploy(self):
self.logDir = "%s/sim/dnode%d/log" % (self.path, self.index) self.logDir = os.path.join(self.path,"sim","dnode%d" % self.index, "log")
self.dataDir = "%s/sim/dnode%d/data" % (self.path, self.index) self.dataDir = os.path.join(self.path,"sim","dnode%d" % self.index, "data")
self.cfgDir = "%s/sim/dnode%d/cfg" % (self.path, self.index) self.cfgDir = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg")
self.cfgPath = "%s/sim/dnode%d/cfg/taos.cfg" % ( self.cfgPath = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg","taos.cfg")
self.path, self.index)
cmd = "rm -rf " + self.dataDir cmd = "rm -rf " + self.dataDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -325,11 +324,11 @@ class TDDnode:
tdLog.exit(cmd) tdLog.exit(cmd)
def getDnodeRootDir(self, index): def getDnodeRootDir(self, index):
dnodeRootDir = "%s/sim/psim/dnode%d" % (self.path, index) dnodeRootDir = os.path.join(self.path,"sim","psim","dnode%d" % index)
return dnodeRootDir return dnodeRootDir
def getDnodesRootDir(self): def getDnodesRootDir(self):
dnodesRootDir = "%s/sim/psim" % (self.path) dnodesRootDir = os.path.join(self.path,"sim","psim")
return dnodesRootDir return dnodesRootDir

View File

@ -44,11 +44,11 @@ class TDSimClient:
self.path = path self.path = path
def getLogDir(self): def getLogDir(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
return self.logDir return self.logDir
def getCfgDir(self): def getCfgDir(self):
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
return self.cfgDir return self.cfgDir
def setTestCluster(self, value): def setTestCluster(self, value):
@ -63,9 +63,9 @@ class TDSimClient:
tdLog.exit(cmd) tdLog.exit(cmd)
def deploy(self): def deploy(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
self.cfgPath = "%s/sim/psim/cfg/taos.cfg" % (self.path) self.cfgPath = os.path.join(self.path,"sim","psim","cfg","taos.cfg")
cmd = "rm -rf " + self.logDir cmd = "rm -rf " + self.logDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -129,11 +129,10 @@ class TDDnode:
return totalSize return totalSize
def deploy(self): def deploy(self):
self.logDir = "%s/sim/dnode%d/log" % (self.path, self.index) self.logDir = os.path.join(self.path,"sim","dnode%d" % self.index, "log")
self.dataDir = "%s/sim/dnode%d/data" % (self.path, self.index) self.dataDir = os.path.join(self.path,"sim","dnode%d" % self.index, "data")
self.cfgDir = "%s/sim/dnode%d/cfg" % (self.path, self.index) self.cfgDir = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg")
self.cfgPath = "%s/sim/dnode%d/cfg/taos.cfg" % ( self.cfgPath = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg","taos.cfg")
self.path, self.index)
cmd = "rm -rf " + self.dataDir cmd = "rm -rf " + self.dataDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -323,11 +322,11 @@ class TDDnode:
tdLog.exit(cmd) tdLog.exit(cmd)
def getDnodeRootDir(self, index): def getDnodeRootDir(self, index):
dnodeRootDir = "%s/sim/psim/dnode%d" % (self.path, index) dnodeRootDir = os.path.join(self.path,"sim","psim","dnode%d" % index)
return dnodeRootDir return dnodeRootDir
def getDnodesRootDir(self): def getDnodesRootDir(self):
dnodesRootDir = "%s/sim/psim" % (self.path) dnodesRootDir = os.path.join(self.path,"sim","psim")
return dnodesRootDir return dnodesRootDir

View File

@ -41,11 +41,11 @@ class TDSimClient:
self.path = path self.path = path
def getLogDir(self): def getLogDir(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
return self.logDir return self.logDir
def getCfgDir(self): def getCfgDir(self):
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
return self.cfgDir return self.cfgDir
def setTestCluster(self, value): def setTestCluster(self, value):
@ -60,9 +60,9 @@ class TDSimClient:
tdLog.exit(cmd) tdLog.exit(cmd)
def deploy(self): def deploy(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
self.cfgPath = "%s/sim/psim/cfg/taos.cfg" % (self.path) self.cfgPath = os.path.join(self.path,"sim","psim","cfg","taos.cfg")
cmd = "rm -rf " + self.logDir cmd = "rm -rf " + self.logDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -126,11 +126,10 @@ class TDDnode:
return totalSize return totalSize
def deploy(self): def deploy(self):
self.logDir = "%s/sim/dnode%d/log" % (self.path, self.index) self.logDir = os.path.join(self.path,"sim","dnode%d" % self.index, "log")
self.dataDir = "%s/sim/dnode%d/data" % (self.path, self.index) self.dataDir = os.path.join(self.path,"sim","dnode%d" % self.index, "data")
self.cfgDir = "%s/sim/dnode%d/cfg" % (self.path, self.index) self.cfgDir = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg")
self.cfgPath = "%s/sim/dnode%d/cfg/taos.cfg" % ( self.cfgPath = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg","taos.cfg")
self.path, self.index)
cmd = "rm -rf " + self.dataDir cmd = "rm -rf " + self.dataDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -320,11 +319,11 @@ class TDDnode:
tdLog.exit(cmd) tdLog.exit(cmd)
def getDnodeRootDir(self, index): def getDnodeRootDir(self, index):
dnodeRootDir = "%s/sim/psim/dnode%d" % (self.path, index) dnodeRootDir = os.path.join(self.path,"sim","psim","dnode%d" % index)
return dnodeRootDir return dnodeRootDir
def getDnodesRootDir(self): def getDnodesRootDir(self):
dnodesRootDir = "%s/sim/psim" % (self.path) dnodesRootDir = os.path.join(self.path,"sim","psim")
return dnodesRootDir return dnodesRootDir

View File

@ -50,11 +50,11 @@ class TDSimClient:
} }
def getLogDir(self): def getLogDir(self):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
return self.logDir return self.logDir
def getCfgDir(self): def getCfgDir(self):
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
return self.cfgDir return self.cfgDir
def setTestCluster(self, value): def setTestCluster(self, value):
@ -69,9 +69,9 @@ class TDSimClient:
tdLog.exit(cmd) tdLog.exit(cmd)
def deploy(self, *updatecfgDict): def deploy(self, *updatecfgDict):
self.logDir = "%s/sim/psim/log" % (self.path) self.logDir = os.path.join(self.path,"sim","psim","log")
self.cfgDir = "%s/sim/psim/cfg" % (self.path) self.cfgDir = os.path.join(self.path,"sim","psim","cfg")
self.cfgPath = "%s/sim/psim/cfg/taos.cfg" % (self.path) self.cfgPath = os.path.join(self.path,"sim","psim","cfg","taos.cfg")
cmd = "rm -rf " + self.logDir cmd = "rm -rf " + self.logDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -207,11 +207,10 @@ class TDDnode:
self.remote_conn.run("python3 ./test.py %s -d %s -e %s"%(valgrindStr,remoteCfgDictStr,execCmdStr)) self.remote_conn.run("python3 ./test.py %s -d %s -e %s"%(valgrindStr,remoteCfgDictStr,execCmdStr))
def deploy(self, *updatecfgDict): def deploy(self, *updatecfgDict):
self.logDir = "%s/sim/dnode%d/log" % (self.path, self.index) self.logDir = os.path.join(self.path,"sim","dnode%d" % self.index, "log")
self.dataDir = "%s/sim/dnode%d/data" % (self.path, self.index) self.dataDir = os.path.join(self.path,"sim","dnode%d" % self.index, "data")
self.cfgDir = "%s/sim/dnode%d/cfg" % (self.path, self.index) self.cfgDir = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg")
self.cfgPath = "%s/sim/dnode%d/cfg/taos.cfg" % ( self.cfgPath = os.path.join(self.path,"sim","dnode%d" % self.index, "cfg","taos.cfg")
self.path, self.index)
cmd = "rm -rf " + self.dataDir cmd = "rm -rf " + self.dataDir
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -472,20 +471,25 @@ class TDDnode:
tdLog.exit("dnode:%d is not deployed" % (self.index)) tdLog.exit("dnode:%d is not deployed" % (self.index))
if self.valgrind == 0: if self.valgrind == 0:
if self.asan: if platform.system().lower() == 'windows':
asanDir = "%s/sim/asan/dnode%d.asan" % ( cmd = "mintty -h never %s -c %s" % (binPath, self.cfgDir)
self.path, self.index)
cmd = "nohup %s -c %s > /dev/null 2> %s & " % (
binPath, self.cfgDir, asanDir)
else: else:
cmd = "nohup %s -c %s > /dev/null 2>&1 & " % ( if self.asan:
binPath, self.cfgDir) asanDir = "%s/sim/asan/dnode%d.asan" % (
self.path, self.index)
cmd = "nohup %s -c %s > /dev/null 2> %s & " % (
binPath, self.cfgDir, asanDir)
else:
cmd = "nohup %s -c %s > /dev/null 2>&1 & " % (
binPath, self.cfgDir)
else: else:
valgrindCmdline = "valgrind --log-file=\"%s/../log/valgrind.log\" --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes"%self.cfgDir valgrindCmdline = "valgrind --log-file=\"%s/../log/valgrind.log\" --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes"%self.cfgDir
if platform.system().lower() == 'windows':
cmd = "nohup %s %s -c %s 2>&1 & " % ( cmd = "mintty -h never %s %s -c %s" % (
valgrindCmdline, binPath, self.cfgDir) valgrindCmdline, binPath, self.cfgDir)
else:
cmd = "nohup %s %s -c %s 2>&1 & " % (
valgrindCmdline, binPath, self.cfgDir)
print(cmd) print(cmd)
if (self.remoteIP == ""): if (self.remoteIP == ""):
@ -568,6 +572,8 @@ class TDDnode:
while(processID): while(processID):
if not platform.system().lower() == 'windows' or (onlyKillOnceWindows == 0 and platform.system().lower() == 'windows'): if not platform.system().lower() == 'windows' or (onlyKillOnceWindows == 0 and platform.system().lower() == 'windows'):
killCmd = "kill -INT %s > /dev/null 2>&1" % processID killCmd = "kill -INT %s > /dev/null 2>&1" % processID
if platform.system().lower() == 'windows':
killCmd = "kill -INT %s > nul 2>&1" % processID
os.system(killCmd) os.system(killCmd)
onlyKillOnceWindows = 1 onlyKillOnceWindows = 1
time.sleep(1) time.sleep(1)
@ -635,11 +641,11 @@ class TDDnode:
tdLog.exit(cmd) tdLog.exit(cmd)
def getDnodeRootDir(self, index): def getDnodeRootDir(self, index):
dnodeRootDir = "%s/sim/psim/dnode%d" % (self.path, index) dnodeRootDir = os.path.join(self.path,"sim","psim","dnode%d" % index)
return dnodeRootDir return dnodeRootDir
def getDnodesRootDir(self): def getDnodesRootDir(self):
dnodesRootDir = "%s/sim/psim" % (self.path) dnodesRootDir = os.path.join(self.path,"sim","psim")
return dnodesRootDir return dnodesRootDir
@ -789,15 +795,21 @@ class TDDnodes:
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip() processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
while(processID): while(processID):
print(processID) print(processID)
if platform.system().lower() == 'windows': killCmd = "kill -9 %s > /dev/null 2>&1" % processID
killCmd = "kill -9 %s > nul 2>&1" % processID os.system(killCmd)
else: time.sleep(1)
killCmd = "kill -9 %s > /dev/null 2>&1" % processID processID = subprocess.check_output(
psCmd, shell=True).decode("utf-8").strip()
elif platform.system().lower() == 'windows':
psCmd = "for /f %a in ('wmic process where \"name='taosd.exe'\" get processId ^| xargs echo ^| awk '{print $2}' ^&^& echo aa') do @(ps | grep %a | awk '{print $1}' | xargs)"
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
while(processID):
print(processID)
killCmd = "kill -9 %s > nul 2>&1" % processID
os.system(killCmd) os.system(killCmd)
time.sleep(1) time.sleep(1)
processID = subprocess.check_output( processID = subprocess.check_output(
psCmd, shell=True).decode("utf-8").strip() psCmd, shell=True).decode("utf-8").strip()
else: else:
psCmd = "ps -ef | grep -w taosd | grep 'root' | grep -v grep| grep -v defunct | awk '{print $2}' | xargs" psCmd = "ps -ef | grep -w taosd | grep 'root' | grep -v grep| grep -v defunct | awk '{print $2}' | xargs"
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip() processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
@ -809,10 +821,7 @@ class TDDnodes:
psCmd = "ps -ef|grep -w taosd| grep -v grep| grep -v defunct | awk '{print $2}' | xargs" psCmd = "ps -ef|grep -w taosd| grep -v grep| grep -v defunct | awk '{print $2}' | xargs"
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip() processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
while(processID): while(processID):
if platform.system().lower() == 'windows': killCmd = "kill -9 %s > /dev/null 2>&1" % processID
killCmd = "kill -9 %s > nul 2>&1" % processID
else:
killCmd = "kill -9 %s > /dev/null 2>&1" % processID
os.system(killCmd) os.system(killCmd)
time.sleep(1) time.sleep(1)
processID = subprocess.check_output( processID = subprocess.check_output(

View File

@ -18,6 +18,9 @@ class GetTime:
def get_ms_timestamp(self,ts_str): def get_ms_timestamp(self,ts_str):
_ts_str = ts_str _ts_str = ts_str
if "+" in _ts_str:
timestamp = datetime.fromisoformat(_ts_str)
return int((timestamp-datetime.fromtimestamp(0,timestamp.tzinfo)).total_seconds())*1000+int(timestamp.microsecond / 1000)
if " " in ts_str: if " " in ts_str:
p = ts_str.split(" ")[1] p = ts_str.split(" ")[1]
if len(p) > 15 : if len(p) > 15 :

View File

@ -1,4 +1,4 @@
import socket import requests
from fabric2 import Connection from fabric2 import Connection
from util.log import * from util.log import *
from util.common import * from util.common import *
@ -132,9 +132,9 @@ class TAdapter:
tdLog.exit(cmd) tdLog.exit(cmd)
def deploy(self, *update_cfg_dict): def deploy(self, *update_cfg_dict):
self.log_dir = f"{self.path}/sim/dnode1/log" self.log_dir = os.path.join(self.path,"sim","dnode1","log")
self.cfg_dir = f"{self.path}/sim/dnode1/cfg" self.cfg_dir = os.path.join(self.path,"sim","dnode1","cfg")
self.cfg_path = f"{self.cfg_dir}/taosadapter.toml" self.cfg_path = os.path.join(self.cfg_dir,"taosadapter.toml")
cmd = f"touch {self.cfg_path}" cmd = f"touch {self.cfg_path}"
if os.system(cmd) != 0: if os.system(cmd) != 0:
@ -162,7 +162,7 @@ class TAdapter:
tdLog.info(f"taosadapter found: {bin_path}") tdLog.info(f"taosadapter found: {bin_path}")
if platform.system().lower() == 'windows': if platform.system().lower() == 'windows':
cmd = f"mintty -h never {bin_path} -c {self.cfg_dir}" cmd = f"mintty -h never {bin_path} -c {self.cfg_path}"
else: else:
cmd = f"nohup {bin_path} -c {self.cfg_path} > /dev/null & " cmd = f"nohup {bin_path} -c {self.cfg_path} > /dev/null & "
@ -170,7 +170,7 @@ class TAdapter:
self.remote_exec(self.taosadapter_cfg_dict, f"tAdapter.deployed=1\ntAdapter.log_dir={self.log_dir}\ntAdapter.cfg_dir={self.cfg_dir}\ntAdapter.start()") self.remote_exec(self.taosadapter_cfg_dict, f"tAdapter.deployed=1\ntAdapter.log_dir={self.log_dir}\ntAdapter.cfg_dir={self.cfg_dir}\ntAdapter.start()")
self.running = 1 self.running = 1
else: else:
os.system(f"rm -rf {self.log_dir}/taosadapter*") os.system(f"rm -rf {self.log_dir}{os.sep}taosadapter*")
if os.system(cmd) != 0: if os.system(cmd) != 0:
tdLog.exit(cmd) tdLog.exit(cmd)
self.running = 1 self.running = 1
@ -179,22 +179,19 @@ class TAdapter:
time.sleep(0.1) time.sleep(0.1)
taosadapter_port = self.taosadapter_cfg_dict["port"] taosadapter_port = self.taosadapter_cfg_dict["port"]
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) for i in range(5):
s.settimeout(3) ip = 'localhost'
try: if self.remoteIP != "":
res = s.connect_ex((self.remoteIP, taosadapter_port)) ip = self.remoteIP
s.shutdown(2) url = f'http://{ip}:{taosadapter_port}/-/ping'
if res == 0: try:
tdLog.info(f"the taosadapter has been started, using port:{taosadapter_port}") r = requests.get(url)
else: if r.status_code == 200:
tdLog.info(f"the taosadapter do not started!!!") tdLog.info(f"the taosadapter has been started, using port:{taosadapter_port}")
except socket.error as e: break
tdLog.notice("socket connect error!") except Exception:
finally: tdLog.info(f"the taosadapter do not started!!!")
if s: time.sleep(1)
s.close()
# tdLog.debug("the taosadapter has been started.")
time.sleep(1)
def start_taosadapter(self): def start_taosadapter(self):
""" """
@ -228,33 +225,36 @@ class TAdapter:
def stop(self, force_kill=False): def stop(self, force_kill=False):
signal = "-9" if force_kill else "-15" signal = "-9" if force_kill else "-15"
if self.remoteIP: if self.remoteIP:
self.remote_exec(self.taosadapter_cfg_dict, "tAdapter.running=1\ntAdapter.stop()") self.remote_exec(self.taosadapter_cfg_dict, "tAdapter.running=1\ntAdapter.stop()")
tdLog.info("stop taosadapter") tdLog.info("stop taosadapter")
return return
toBeKilled = "taosadapter" toBeKilled = "taosadapter"
if platform.system().lower() == 'windows':
if self.running != 0:
psCmd = f"ps -ef|grep -w {toBeKilled}| grep -v grep | awk '{{print $2}}'" psCmd = f"ps -ef|grep -w {toBeKilled}| grep -v grep | awk '{{print $2}}'"
# psCmd = f"pgrep {toBeKilled}"
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip() processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
while(processID): while(processID):
killCmd = "kill %s %s > /dev/null 2>&1" % (signal, processID) killCmd = "kill %s %s > nul 2>&1" % (signal, processID)
os.system(killCmd) os.system(killCmd)
time.sleep(1) time.sleep(1)
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip() processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
if not platform.system().lower() == 'windows': self.running = 0
tdLog.debug(f"taosadapter is stopped by kill {signal}")
else:
if self.running != 0:
psCmd = f"ps -ef|grep -w {toBeKilled}| grep -v grep | awk '{{print $2}}'"
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
while(processID):
killCmd = "kill %s %s > /dev/null 2>&1" % (signal, processID)
os.system(killCmd)
time.sleep(1)
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8").strip()
port = 6041 port = 6041
fuserCmd = f"fuser -k -n tcp {port} > /dev/null" fuserCmd = f"fuser -k -n tcp {port} > /dev/null"
os.system(fuserCmd) os.system(fuserCmd)
# for port in range(6030, 6041): self.running = 0
# fuserCmd = f"fuser -k -n tcp {port} > /dev/null" tdLog.debug(f"taosadapter is stopped by kill {signal}")
# os.system(fuserCmd)
self.running = 0
tdLog.debug(f"taosadapter is stopped by kill {signal}")

View File

@ -0,0 +1,2 @@
@echo off
echo 0

View File

@ -54,7 +54,7 @@ if %NODE% == 6 set NODE=7600
if %NODE% == 7 set NODE=7700 if %NODE% == 7 set NODE=7700
if %NODE% == 8 set NODE=7800 if %NODE% == 8 set NODE=7800
rem set "fqdn=" set "fqdn=localhost"
for /f "skip=1" %%A in ( for /f "skip=1" %%A in (
'wmic computersystem get caption' 'wmic computersystem get caption'
) do if not defined fqdn set "fqdn=%%A" ) do if not defined fqdn set "fqdn=%%A"

View File

@ -50,7 +50,7 @@ if %EXEC_OPTON% == start (
goto :finish goto :finish
) )
echo check taosd online echo check taosd online
tail -n +0 %TAOS_LOG% | grep -q "TDengine initialized successfully" || goto :check_online tail -n +0 %TAOS_LOG% | grep -E "TDengine initialized successfully|from offline to online" || goto :check_online
echo finish echo finish
goto :finish goto :finish
) )

67
tests/script/test-win.bat Normal file
View File

@ -0,0 +1,67 @@
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( set "DEL=%%a")
set /a a=0
echo Windows Taosd Full Test
set /a exitNum=0
rm -rf failed.txt
set caseFile="win-test-file"
if not "%2" == "" (
set caseFile="%2"
)
for /F "usebackq tokens=*" %%i in (!caseFile!) do (
set line=%%i
call :CheckSkipCase %%i
if !skipCase! == false (
if "!line:~,9!" == "./test.sh" (
set /a a+=1
echo !a! Processing %%i
call :GetTimeSeconds !time!
set time1=!_timeTemp!
echo Start at !time!
call !line:./test.sh=wtest.bat! > result_!a!.txt 2>error_!a!.txt || set /a errorlevel=8
if errorlevel 1 ( call :colorEcho 0c "failed" &echo. && set /a exitNum=8 && echo %%i >>failed.txt ) else ( call :colorEcho 0a "Success" &echo. )
)
)
)
exit /b !exitNum!
:colorEcho
set timeNow=%time%
call :GetTimeSeconds %timeNow%
set time2=%_timeTemp%
set /a interTime=%time2% - %time1%
echo End at %timeNow% , cast %interTime%s
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
goto :eof
:GetTimeSeconds
set tt=%1
set tt=%tt:.= %
set tt=%tt::= %
set tt=%tt: 0= %
set /a index=1
for %%a in (%tt%) do (
if !index! EQU 1 (
set /a hh=%%a
)^
else if !index! EQU 2 (
set /a mm=%%a
)^
else if !index! EQU 3 (
set /a ss=%%a
)
set /a index=index+1
)
set /a _timeTemp=(%hh%*60+%mm%)*60+%ss%
goto :eof
:CheckSkipCase
set skipCase=false
@REM if "%*" == "./test.sh -f tsim/query/scalarFunction.sim" ( set skipCase=true )
echo %* | grep valgrind && set skipCase=true
:goto eof

View File

@ -50,6 +50,21 @@ endi
print =============== step2 create database print =============== step2 create database
sql create database d1 vgroups 1 replica 3 sql create database d1 vgroups 1 replica 3
sql use d1 sql use d1
$wt = 0
stepwt1:
$wt = $wt + 1
sleep 1000
if $wt == 200 then
print ====> dnode not ready!
return -1
endi
sql show transactions
if $rows != 0 then
print wait 1 seconds to alter
goto stepwt1
endi
sql create table d1.st0 (ts timestamp, i int) tags (j int) sql create table d1.st0 (ts timestamp, i int) tags (j int)
sql create table d1.c0 using st0 tags(0) sql create table d1.c0 using st0 tags(0)
sql create table d1.c1 using st0 tags(1) sql create table d1.c1 using st0 tags(1)

View File

@ -170,6 +170,20 @@ if $leaderExist != 1 then
goto step35 goto step35
endi endi
$wt = 0
stepwt1:
$wt = $wt + 1
sleep 1000
if $wt == 200 then
print ====> dnode not ready!
return -1
endi
sql show transactions
if $rows != 0 then
print wait 1 seconds to alter
goto stepwt1
endi
print =============== step36: create table print =============== step36: create table
sql use d1 sql use d1
sql create table d1.st (ts timestamp, i int) tags (j int) sql create table d1.st (ts timestamp, i int) tags (j int)

View File

@ -55,7 +55,7 @@ $loop_cnt = 0
check_db_ready: check_db_ready:
$loop_cnt = $loop_cnt + 1 $loop_cnt = $loop_cnt + 1
sleep 200 sleep 200
if $loop_cnt == 100 then if $loop_cnt == 500 then
print ====> db not ready! print ====> db not ready!
return -1 return -1
endi endi

402
tests/script/win-test-file Normal file
View File

@ -0,0 +1,402 @@
./test.sh -f tsim/user/basic.sim
./test.sh -f tsim/user/password.sim
./test.sh -f tsim/user/privilege_db.sim
./test.sh -f tsim/user/privilege_sysinfo.sim
./test.sh -f tsim/user/privilege_topic.sim
./test.sh -f tsim/db/alter_option.sim
rem ./test.sh -f tsim/db/alter_replica_13.sim
./test.sh -f tsim/db/alter_replica_31.sim
./test.sh -f tsim/db/basic1.sim
./test.sh -f tsim/db/basic2.sim
./test.sh -f tsim/db/basic3.sim
./test.sh -f tsim/db/basic4.sim
./test.sh -f tsim/db/basic5.sim
./test.sh -f tsim/db/basic6.sim
./test.sh -f tsim/db/commit.sim
./test.sh -f tsim/db/create_all_options.sim
./test.sh -f tsim/db/delete_reuse1.sim
./test.sh -f tsim/db/delete_reuse2.sim
./test.sh -f tsim/db/delete_reusevnode.sim
./test.sh -f tsim/db/delete_reusevnode2.sim
./test.sh -f tsim/db/delete_writing1.sim
./test.sh -f tsim/db/delete_writing2.sim
./test.sh -f tsim/db/error1.sim
./test.sh -f tsim/db/keep.sim
./test.sh -f tsim/db/len.sim
./test.sh -f tsim/db/repeat.sim
./test.sh -f tsim/db/show_create_db.sim
./test.sh -f tsim/db/show_create_table.sim
./test.sh -f tsim/db/tables.sim
./test.sh -f tsim/db/taosdlog.sim
./test.sh -f tsim/dnode/balance_replica1.sim
./test.sh -f tsim/dnode/balance_replica3.sim
./test.sh -f tsim/dnode/balance1.sim
./test.sh -f tsim/dnode/balance2.sim
./test.sh -f tsim/dnode/balance3.sim
./test.sh -f tsim/dnode/balancex.sim
./test.sh -f tsim/dnode/create_dnode.sim
./test.sh -f tsim/dnode/drop_dnode_has_mnode.sim
./test.sh -f tsim/dnode/drop_dnode_has_qnode_snode.sim
./test.sh -f tsim/dnode/drop_dnode_has_vnode_replica1.sim
./test.sh -f tsim/dnode/drop_dnode_has_vnode_replica3.sim
./test.sh -f tsim/dnode/drop_dnode_has_multi_vnode_replica1.sim
./test.sh -f tsim/dnode/drop_dnode_has_multi_vnode_replica3.sim
./test.sh -f tsim/dnode/drop_dnode_force.sim
./test.sh -f tsim/dnode/offline_reason.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica1.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_leader.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v1_follower.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v2.sim
./test.sh -f tsim/dnode/redistribute_vgroup_replica3_v3.sim
./test.sh -f tsim/dnode/vnode_clean.sim
./test.sh -f tsim/dnode/use_dropped_dnode.sim
./test.sh -f tsim/dnode/split_vgroup_replica1.sim
./test.sh -f tsim/dnode/split_vgroup_replica3.sim
./test.sh -f tsim/import/basic.sim
./test.sh -f tsim/import/commit.sim
./test.sh -f tsim/import/large.sim
./test.sh -f tsim/import/replica1.sim
./test.sh -f tsim/insert/backquote.sim
./test.sh -f tsim/insert/basic.sim
./test.sh -f tsim/insert/basic0.sim
./test.sh -f tsim/insert/basic1.sim
./test.sh -f tsim/insert/basic2.sim
./test.sh -f tsim/insert/commit-merge0.sim
./test.sh -f tsim/insert/insert_drop.sim
./test.sh -f tsim/insert/insert_select.sim
./test.sh -f tsim/insert/null.sim
./test.sh -f tsim/insert/query_block1_file.sim
./test.sh -f tsim/insert/query_block1_memory.sim
./test.sh -f tsim/insert/query_block2_file.sim
./test.sh -f tsim/insert/query_block2_memory.sim
./test.sh -f tsim/insert/query_file_memory.sim
./test.sh -f tsim/insert/query_multi_file.sim
./test.sh -f tsim/insert/tcp.sim
./test.sh -f tsim/insert/update0.sim
./test.sh -f tsim/insert/update1_sort_merge.sim
./test.sh -f tsim/insert/update2.sim
./test.sh -f tsim/parser/alter__for_community_version.sim
./test.sh -f tsim/parser/alter_column.sim
./test.sh -f tsim/parser/alter_stable.sim
./test.sh -f tsim/parser/alter.sim
./test.sh -f tsim/parser/alter1.sim
./test.sh -f tsim/parser/auto_create_tb_drop_tb.sim
./test.sh -f tsim/parser/auto_create_tb.sim
./test.sh -f tsim/parser/between_and.sim
./test.sh -f tsim/parser/binary_escapeCharacter.sim
./test.sh -f tsim/parser/col_arithmetic_operation.sim
./test.sh -f tsim/parser/columnValue_bigint.sim
./test.sh -f tsim/parser/columnValue_bool.sim
./test.sh -f tsim/parser/columnValue_double.sim
./test.sh -f tsim/parser/columnValue_float.sim
./test.sh -f tsim/parser/columnValue_int.sim
./test.sh -f tsim/parser/columnValue_smallint.sim
./test.sh -f tsim/parser/columnValue_tinyint.sim
./test.sh -f tsim/parser/columnValue_unsign.sim
./test.sh -f tsim/parser/commit.sim
./test.sh -f tsim/parser/condition.sim
./test.sh -f tsim/parser/constCol.sim
./test.sh -f tsim/parser/create_db.sim
./test.sh -f tsim/parser/create_mt.sim
./test.sh -f tsim/parser/create_tb_with_tag_name.sim
./test.sh -f tsim/parser/create_tb.sim
./test.sh -f tsim/parser/dbtbnameValidate.sim
./test.sh -f tsim/parser/distinct.sim
./test.sh -f tsim/parser/fill_us.sim
./test.sh -f tsim/parser/fill.sim
./test.sh -f tsim/parser/first_last.sim
./test.sh -f tsim/parser/fill_stb.sim
./test.sh -f tsim/parser/interp.sim
./test.sh -f tsim/parser/fourArithmetic-basic.sim
./test.sh -f tsim/parser/function.sim
./test.sh -f tsim/parser/groupby-basic.sim
./test.sh -f tsim/parser/groupby.sim
./test.sh -f tsim/parser/having_child.sim
./test.sh -f tsim/parser/having.sim
./test.sh -f tsim/parser/import_commit1.sim
./test.sh -f tsim/parser/import_commit2.sim
./test.sh -f tsim/parser/import_commit3.sim
./test.sh -f tsim/parser/import_file.sim
./test.sh -f tsim/parser/import.sim
./test.sh -f tsim/parser/insert_multiTbl.sim
./test.sh -f tsim/parser/insert_tb.sim
./test.sh -f tsim/parser/join_manyblocks.sim
./test.sh -f tsim/parser/join_multitables.sim
./test.sh -f tsim/parser/join_multivnode.sim
./test.sh -f tsim/parser/join.sim
./test.sh -f tsim/parser/last_cache.sim
./test.sh -f tsim/parser/last_groupby.sim
./test.sh -f tsim/parser/lastrow.sim
./test.sh -f tsim/parser/lastrow2.sim
./test.sh -f tsim/parser/like.sim
./test.sh -f tsim/parser/limit.sim
./test.sh -f tsim/parser/limit1.sim
./test.sh -f tsim/parser/mixed_blocks.sim
./test.sh -f tsim/parser/nchar.sim
./test.sh -f tsim/parser/nestquery.sim
./test.sh -f tsim/parser/null_char.sim
./test.sh -f tsim/parser/precision_ns.sim
./test.sh -f tsim/parser/projection_limit_offset.sim
./test.sh -f tsim/parser/regex.sim
./test.sh -f tsim/parser/regressiontest.sim
./test.sh -f tsim/parser/select_across_vnodes.sim
./test.sh -f tsim/parser/select_distinct_tag.sim
./test.sh -f tsim/parser/select_from_cache_disk.sim
./test.sh -f tsim/parser/select_with_tags.sim
./test.sh -f tsim/parser/selectResNum.sim
./test.sh -f tsim/parser/set_tag_vals.sim
./test.sh -f tsim/parser/single_row_in_tb.sim
./test.sh -f tsim/parser/sliding.sim
./test.sh -f tsim/parser/slimit_alter_tags.sim
./test.sh -f tsim/parser/slimit.sim
./test.sh -f tsim/parser/slimit1.sim
./test.sh -f tsim/parser/stableOp.sim
./test.sh -f tsim/parser/tags_dynamically_specifiy.sim
./test.sh -f tsim/parser/tags_filter.sim
./test.sh -f tsim/parser/tbnameIn.sim
./test.sh -f tsim/parser/timestamp.sim
./test.sh -f tsim/parser/top_groupby.sim
./test.sh -f tsim/parser/topbot.sim
./test.sh -f tsim/parser/union.sim
./test.sh -f tsim/parser/union_sysinfo.sim
./test.sh -f tsim/parser/where.sim
./test.sh -f tsim/query/tagLikeFilter.sim
./test.sh -f tsim/query/charScalarFunction.sim
./test.sh -f tsim/query/explain.sim
./test.sh -f tsim/query/interval-offset.sim
./test.sh -f tsim/query/interval.sim
./test.sh -f tsim/query/scalarFunction.sim
./test.sh -f tsim/query/scalarNull.sim
./test.sh -f tsim/query/session.sim
./test.sh -f tsim/query/sys_tbname.sim
./test.sh -f tsim/query/groupby.sim
./test.sh -f tsim/query/event.sim
./test.sh -f tsim/query/forceFill.sim
./test.sh -f tsim/query/emptyTsRange.sim
./test.sh -f tsim/query/partitionby.sim
./test.sh -f tsim/qnode/basic1.sim
./test.sh -f tsim/snode/basic1.sim
./test.sh -f tsim/mnode/basic1.sim
./test.sh -f tsim/mnode/basic2.sim
./test.sh -f tsim/mnode/basic3.sim
./test.sh -f tsim/mnode/basic4.sim
./test.sh -f tsim/mnode/basic5.sim
./test.sh -f tsim/show/basic.sim
./test.sh -f tsim/table/autocreate.sim
./test.sh -f tsim/table/basic1.sim
./test.sh -f tsim/table/basic2.sim
./test.sh -f tsim/table/basic3.sim
./test.sh -f tsim/table/bigint.sim
./test.sh -f tsim/table/binary.sim
./test.sh -f tsim/table/bool.sim
./test.sh -f tsim/table/column_name.sim
./test.sh -f tsim/table/column_num.sim
./test.sh -f tsim/table/column_value.sim
./test.sh -f tsim/table/column2.sim
./test.sh -f tsim/table/createmulti.sim
./test.sh -f tsim/table/date.sim
./test.sh -f tsim/table/db.table.sim
./test.sh -f tsim/table/delete_reuse1.sim
./test.sh -f tsim/table/delete_reuse2.sim
./test.sh -f tsim/table/delete_writing.sim
./test.sh -f tsim/table/describe.sim
./test.sh -f tsim/table/double.sim
./test.sh -f tsim/table/float.sim
./test.sh -f tsim/table/hash.sim
./test.sh -f tsim/table/int.sim
./test.sh -f tsim/table/limit.sim
./test.sh -f tsim/table/smallint.sim
./test.sh -f tsim/table/table_len.sim
./test.sh -f tsim/table/table.sim
./test.sh -f tsim/table/tinyint.sim
./test.sh -f tsim/table/vgroup.sim
./test.sh -f tsim/stream/basic0.sim -g
./test.sh -f tsim/stream/basic1.sim
./test.sh -f tsim/stream/basic2.sim
./test.sh -f tsim/stream/drop_stream.sim
./test.sh -f tsim/stream/fillHistoryBasic1.sim
./test.sh -f tsim/stream/fillHistoryBasic2.sim
./test.sh -f tsim/stream/fillHistoryBasic3.sim
./test.sh -f tsim/stream/distributeInterval0.sim
./test.sh -f tsim/stream/distributeIntervalRetrive0.sim
./test.sh -f tsim/stream/distributeSession0.sim
./test.sh -f tsim/stream/session0.sim
./test.sh -f tsim/stream/session1.sim
./test.sh -f tsim/stream/state0.sim
./test.sh -f tsim/stream/triggerInterval0.sim
./test.sh -f tsim/stream/triggerSession0.sim
./test.sh -f tsim/stream/partitionby.sim
./test.sh -f tsim/stream/partitionby1.sim
./test.sh -f tsim/stream/schedSnode.sim
./test.sh -f tsim/stream/windowClose.sim
./test.sh -f tsim/stream/ignoreExpiredData.sim
./test.sh -f tsim/stream/sliding.sim
./test.sh -f tsim/stream/partitionbyColumnInterval.sim
./test.sh -f tsim/stream/partitionbyColumnSession.sim
./test.sh -f tsim/stream/partitionbyColumnState.sim
./test.sh -f tsim/stream/deleteInterval.sim
./test.sh -f tsim/stream/deleteSession.sim
./test.sh -f tsim/stream/deleteState.sim
./test.sh -f tsim/stream/fillIntervalDelete0.sim
./test.sh -f tsim/stream/fillIntervalDelete1.sim
./test.sh -f tsim/stream/fillIntervalLinear.sim
./test.sh -f tsim/stream/fillIntervalPartitionBy.sim
./test.sh -f tsim/stream/fillIntervalPrevNext.sim
./test.sh -f tsim/stream/fillIntervalValue.sim
./test.sh -f tsim/stream/udTableAndTag0.sim
./test.sh -f tsim/stream/udTableAndTag1.sim
./test.sh -f tsim/trans/lossdata1.sim
./test.sh -f tsim/trans/create_db.sim
./test.sh -f tsim/tmq/basic1.sim
./test.sh -f tsim/tmq/basic2.sim
./test.sh -f tsim/tmq/basic3.sim
./test.sh -f tsim/tmq/basic4.sim
./test.sh -f tsim/tmq/basic1Of2Cons.sim
./test.sh -f tsim/tmq/basic2Of2Cons.sim
./test.sh -f tsim/tmq/basic3Of2Cons.sim
./test.sh -f tsim/tmq/basic4Of2Cons.sim
./test.sh -f tsim/tmq/basic2Of2ConsOverlap.sim
./test.sh -f tsim/tmq/topic.sim
./test.sh -f tsim/tmq/snapshot.sim
./test.sh -f tsim/tmq/snapshot1.sim
./test.sh -f tsim/stable/alter_comment.sim
./test.sh -f tsim/stable/alter_count.sim
./test.sh -f tsim/stable/alter_import.sim
./test.sh -f tsim/stable/alter_insert1.sim
./test.sh -f tsim/stable/alter_insert2.sim
./test.sh -f tsim/stable/alter_metrics.sim
./test.sh -f tsim/stable/column_add.sim
./test.sh -f tsim/stable/column_drop.sim
./test.sh -f tsim/stable/column_modify.sim
./test.sh -f tsim/stable/disk.sim
./test.sh -f tsim/stable/dnode3.sim
./test.sh -f tsim/stable/metrics.sim
./test.sh -f tsim/stable/refcount.sim
./test.sh -f tsim/stable/tag_add.sim
./test.sh -f tsim/stable/tag_drop.sim
./test.sh -f tsim/stable/tag_filter.sim
./test.sh -f tsim/stable/tag_modify.sim
./test.sh -f tsim/stable/tag_rename.sim
./test.sh -f tsim/stable/values.sim
./test.sh -f tsim/stable/vnode3.sim
./test.sh -f tsim/stable/metrics_idx.sim
./test.sh -f tsim/sma/drop_sma.sim
./test.sh -f tsim/sma/sma_leak.sim
./test.sh -f tsim/sma/tsmaCreateInsertQuery.sim
./test.sh -f tsim/sma/rsmaCreateInsertQuery.sim
./test.sh -f tsim/sma/rsmaPersistenceRecovery.sim
./test.sh -f tsim/valgrind/checkError1.sim
./test.sh -f tsim/valgrind/checkError2.sim
./test.sh -f tsim/valgrind/checkError3.sim
./test.sh -f tsim/valgrind/checkError4.sim
./test.sh -f tsim/valgrind/checkError5.sim
./test.sh -f tsim/valgrind/checkError6.sim
./test.sh -f tsim/valgrind/checkError7.sim
./test.sh -f tsim/valgrind/checkError8.sim
./test.sh -f tsim/vnode/replica3_basic.sim
./test.sh -f tsim/vnode/replica3_repeat.sim
./test.sh -f tsim/vnode/replica3_vgroup.sim
./test.sh -f tsim/vnode/replica3_many.sim
./test.sh -f tsim/vnode/replica3_import.sim
./test.sh -f tsim/vnode/stable_balance_replica1.sim
./test.sh -f tsim/vnode/stable_dnode2_stop.sim
./test.sh -f tsim/vnode/stable_dnode2.sim
./test.sh -f tsim/vnode/stable_dnode3.sim
./test.sh -f tsim/vnode/stable_replica3_dnode6.sim
./test.sh -f tsim/vnode/stable_replica3_vnode3.sim
./test.sh -f tsim/sync/3Replica1VgElect.sim
./test.sh -f tsim/sync/3Replica5VgElect.sim
./test.sh -f tsim/sync/oneReplica1VgElect.sim
./test.sh -f tsim/sync/oneReplica5VgElect.sim
./test.sh -f tsim/catalog/alterInCurrent.sim
./test.sh -f tsim/scalar/in.sim
./test.sh -f tsim/scalar/scalar.sim
./test.sh -f tsim/scalar/filter.sim
./test.sh -f tsim/scalar/caseWhen.sim
./test.sh -f tsim/scalar/tsConvert.sim
./test.sh -f tsim/alter/cached_schema_after_alter.sim
./test.sh -f tsim/alter/dnode.sim
./test.sh -f tsim/alter/table.sim
./test.sh -f tsim/cache/new_metrics.sim
./test.sh -f tsim/cache/restart_table.sim
./test.sh -f tsim/cache/restart_metrics.sim
./test.sh -f tsim/column/commit.sim
./test.sh -f tsim/column/metrics.sim
./test.sh -f tsim/column/table.sim
./test.sh -f tsim/compress/commitlog.sim
./test.sh -f tsim/compress/compress2.sim
./test.sh -f tsim/compress/compress.sim
./test.sh -f tsim/compress/uncompress.sim
./test.sh -f tsim/compute/avg.sim
./test.sh -f tsim/compute/block_dist.sim
./test.sh -f tsim/compute/bottom.sim
./test.sh -f tsim/compute/count.sim
./test.sh -f tsim/compute/diff.sim
./test.sh -f tsim/compute/diff2.sim
./test.sh -f tsim/compute/first.sim
./test.sh -f tsim/compute/interval.sim
./test.sh -f tsim/compute/last_row.sim
./test.sh -f tsim/compute/last.sim
./test.sh -f tsim/compute/leastsquare.sim
./test.sh -f tsim/compute/max.sim
./test.sh -f tsim/compute/min.sim
./test.sh -f tsim/compute/null.sim
./test.sh -f tsim/compute/percentile.sim
./test.sh -f tsim/compute/stddev.sim
./test.sh -f tsim/compute/sum.sim
./test.sh -f tsim/compute/top.sim
./test.sh -f tsim/field/2.sim
./test.sh -f tsim/field/3.sim
./test.sh -f tsim/field/4.sim
./test.sh -f tsim/field/5.sim
./test.sh -f tsim/field/6.sim
./test.sh -f tsim/field/binary.sim
./test.sh -f tsim/field/bigint.sim
./test.sh -f tsim/field/bool.sim
./test.sh -f tsim/field/double.sim
./test.sh -f tsim/field/float.sim
./test.sh -f tsim/field/int.sim
./test.sh -f tsim/field/single.sim
./test.sh -f tsim/field/smallint.sim
./test.sh -f tsim/field/tinyint.sim
./test.sh -f tsim/field/unsigined_bigint.sim
./test.sh -f tsim/vector/metrics_field.sim
./test.sh -f tsim/vector/metrics_mix.sim
./test.sh -f tsim/vector/metrics_query.sim
./test.sh -f tsim/vector/metrics_tag.sim
./test.sh -f tsim/vector/metrics_time.sim
./test.sh -f tsim/vector/multi.sim
./test.sh -f tsim/vector/single.sim
./test.sh -f tsim/vector/table_field.sim
./test.sh -f tsim/vector/table_mix.sim
./test.sh -f tsim/vector/table_query.sim
./test.sh -f tsim/vector/table_time.sim
./test.sh -f tsim/wal/kill.sim
./test.sh -f tsim/tag/3.sim
./test.sh -f tsim/tag/4.sim
./test.sh -f tsim/tag/5.sim
./test.sh -f tsim/tag/6.sim
./test.sh -f tsim/tag/add.sim
./test.sh -f tsim/tag/bigint.sim
./test.sh -f tsim/tag/binary_binary.sim
./test.sh -f tsim/tag/binary.sim
./test.sh -f tsim/tag/bool_binary.sim
./test.sh -f tsim/tag/bool_int.sim
./test.sh -f tsim/tag/bool.sim
./test.sh -f tsim/tag/change.sim
./test.sh -f tsim/tag/column.sim
./test.sh -f tsim/tag/commit.sim
./test.sh -f tsim/tag/create.sim
./test.sh -f tsim/tag/delete.sim
./test.sh -f tsim/tag/double.sim
./test.sh -f tsim/tag/filter.sim
./test.sh -f tsim/tag/float.sim
./test.sh -f tsim/tag/int_binary.sim
./test.sh -f tsim/tag/int_float.sim
./test.sh -f tsim/tag/int.sim
./test.sh -f tsim/tag/set.sim
./test.sh -f tsim/tag/smallint.sim
./test.sh -f tsim/tag/tinyint.sim
./test.sh -f tsim/tag/drop_tag.sim
./test.sh -f tsim/tag/tbNameIn.sim
./test.sh -f tmp/monitor.sim

View File

@ -33,7 +33,7 @@ if exist %LOG_DIR% rmdir /s/q %LOG_DIR%
if not exist %CFG_DIR% mkdir %CFG_DIR% if not exist %CFG_DIR% mkdir %CFG_DIR%
if not exist %LOG_DIR% mkdir %LOG_DIR% if not exist %LOG_DIR% mkdir %LOG_DIR%
rem set "fqdn=" set "fqdn=localhost"
for /f "skip=1" %%A in ( for /f "skip=1" %%A in (
'wmic computersystem get caption' 'wmic computersystem get caption'
) do if not defined fqdn set "fqdn=%%A" ) do if not defined fqdn set "fqdn=%%A"

View File

@ -3,6 +3,7 @@ import taos
import sys import sys
import os import os
import time import time
import platform
import inspect import inspect
from taos.tmq import Consumer from taos.tmq import Consumer
@ -106,6 +107,9 @@ class TDTestCase:
if distro_id == "alpine": if distro_id == "alpine":
tdLog.info(f"alpine skip compatibility test") tdLog.info(f"alpine skip compatibility test")
return True return True
if platform.system().lower() == 'windows':
tdLog.info(f"Windows skip compatibility test")
return True
bPath = self.getBuildPath() bPath = self.getBuildPath()
cPath = self.getCfgPath() cPath = self.getCfgPath()
dbname = "test" dbname = "test"

View File

@ -49,8 +49,6 @@ class TDTestCase:
#!for bug #!for bug
tdDnodes.stoptaosd(1) tdDnodes.stoptaosd(1)
sleep(self.delaytime * 5) sleep(self.delaytime * 5)
if platform.system().lower() == 'windows':
sleep(10)
tdSql.error('select server_status()') tdSql.error('select server_status()')
def run(self): def run(self):

View File

@ -4,6 +4,7 @@ import sys
import time import time
from datetime import datetime from datetime import datetime
import socket import socket
import psutil
import os import os
import platform import platform
if platform.system().lower() == 'windows': if platform.system().lower() == 'windows':
@ -67,19 +68,25 @@ class TDTestCase:
return buildPath return buildPath
def get_process_pid(self,processname): def get_process_pid(self,processname):
#origin artical linkhttps://blog.csdn.net/weixin_45623536/article/details/122099062 if platform.system().lower() == 'windows':
process_info_list = [] pids = psutil.process_iter()
process = os.popen('ps -A | grep %s'% processname) for pid in pids:
process_info = process.read() if(pid.name() == processname):
for i in process_info.split(' '): return pid.pid
if i != "": return 0
process_info_list.append(i) else:
print(process_info_list) process_info_list = []
if len(process_info_list) != 0 : process = os.popen('ps -A | grep %s'% processname)
pid = int(process_info_list[0]) process_info = process.read()
else : for i in process_info.split(' '):
pid = 0 if i != "":
return pid process_info_list.append(i)
print(process_info_list)
if len(process_info_list) != 0 :
pid = int(process_info_list[0])
else :
pid = 0
return pid
def checkAndstopPro(self,processName,startAction): def checkAndstopPro(self,processName,startAction):
i = 1 i = 1
@ -99,12 +106,18 @@ class TDTestCase:
def taosdCommandStop(self,startAction,taosdCmdRun): def taosdCommandStop(self,startAction,taosdCmdRun):
processName="taosd" processName="taosd"
if platform.system().lower() == 'windows':
processName="taosd.exe"
taosdCmd = taosdCmdRun + startAction taosdCmd = taosdCmdRun + startAction
tdLog.printNoPrefix("%s"%taosdCmd) tdLog.printNoPrefix("%s"%taosdCmd)
logTime=datetime.now().strftime('%Y%m%d_%H%M%S_%f') if platform.system().lower() == 'windows':
os.system(f"nohup {taosdCmd} > {logTime}.log 2>&1 & ") cmd = f"mintty -h never {taosdCmd}"
self.checkAndstopPro(processName,startAction) os.system(cmd)
os.system(f"rm -rf {logTime}.log") else:
logTime=datetime.now().strftime('%Y%m%d_%H%M%S_%f')
os.system(f"nohup {taosdCmd} > {logTime}.log 2>&1 & ")
self.checkAndstopPro(processName,startAction)
os.system(f"rm -rf {logTime}.log")
def taosdCommandExe(self,startAction,taosdCmdRun): def taosdCommandExe(self,startAction,taosdCmdRun):
@ -186,7 +199,11 @@ class TDTestCase:
startAction=" -a jsonFile:./taosdCaseTmp.json" startAction=" -a jsonFile:./taosdCaseTmp.json"
tdLog.printNoPrefix("================================ parameter: %s"%startAction) tdLog.printNoPrefix("================================ parameter: %s"%startAction)
os.system("echo \'{\"queryPolicy\":\"3\"}\' > taosdCaseTmp.json")
if platform.system().lower() == 'windows':
os.system("echo {\"queryPolicy\":\"3\"} > taosdCaseTmp.json")
else:
os.system("echo \'{\"queryPolicy\":\"3\"}\' > taosdCaseTmp.json")
self.taosdCommandStop(startAction,taosdCmdRun) self.taosdCommandStop(startAction,taosdCmdRun)
startAction = " -a jsonFile:./taosdCaseTmp.json -C " startAction = " -a jsonFile:./taosdCaseTmp.json -C "
@ -206,10 +223,10 @@ class TDTestCase:
self.taosdCommandStop(startAction,taosdCmdRun) self.taosdCommandStop(startAction,taosdCmdRun)
startAction=" -E taosdCaseTmp/.env" startAction=f" -E taosdCaseTmp{os.sep}.env"
tdLog.printNoPrefix("================================ parameter: %s"%startAction) tdLog.printNoPrefix("================================ parameter: %s"%startAction)
os.system(" mkdir -p taosdCaseTmp ") os.system(" mkdir -p taosdCaseTmp ")
os.system("echo \'TAOS_QUERY_POLICY=3\' > taosdCaseTmp/.env ") os.system("echo TAOS_QUERY_POLICY=3 > taosdCaseTmp/.env ")
self.taosdCommandStop(startAction,taosdCmdRun) self.taosdCommandStop(startAction,taosdCmdRun)
os.system(" rm -rf taosdCaseTmp ") os.system(" rm -rf taosdCaseTmp ")

View File

@ -75,7 +75,7 @@ class TDTestCase:
tdLog.exit(cmd) tdLog.exit(cmd)
def cfg_str(self, filename, update_str): def cfg_str(self, filename, update_str):
cmd = f'echo "{update_str}" >> {filename}' cmd = f'echo {update_str} >> {filename}'
if os.system(cmd) != 0: if os.system(cmd) != 0:
tdLog.exit(cmd) tdLog.exit(cmd)
@ -94,41 +94,41 @@ class TDTestCase:
def __err_cfg(self): def __err_cfg(self):
cfg_list = [] cfg_list = []
err_case1 = [ err_case1 = [
f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE1}1 {L1} {PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE1}1 {L1} {PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}"
] ]
err_case2 = [ err_case2 = [
f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L2} {PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L2} {PRIMARY_DIR}"
] ]
err_case3 = [ err_case3 = [
f"dataDir {self.taos_data_dir}/data33 3 {NON_PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}data33 3 {NON_PRIMARY_DIR}"
] ]
err_case4 = [ err_case4 = [
f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L1} {NON_PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L1} {NON_PRIMARY_DIR}"
] ]
err_case5 = [f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {PRIMARY_DIR}"] err_case5 = [f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {PRIMARY_DIR}"]
for i in range(16): for i in range(16):
err_case5.append(f"dataDir {self.taos_data_dir}/{DATA_PRE0}{i+1} {L0} {NON_PRIMARY_DIR}") err_case5.append(f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}{i+1} {L0} {NON_PRIMARY_DIR}")
err_case6 = [ err_case6 = [
f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE0}1 {L0} {PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}1 {L0} {PRIMARY_DIR}",
] ]
err_case7 = [ err_case7 = [
f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L2} {PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L2} {PRIMARY_DIR}",
] ]
err_case8 = [ err_case8 = [
f"dataDir {self.taos_data_dir}/data33 3 {PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}data33 3 {PRIMARY_DIR}"
] ]
err_case9 = [ err_case9 = [
f"dataDir {self.taos_data_dir}/data33 -1 {NON_PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}data33 -1 {NON_PRIMARY_DIR}"
] ]
cfg_list.append(err_case1) cfg_list.append(err_case1)
@ -147,23 +147,23 @@ class TDTestCase:
def __current_cfg(self): def __current_cfg(self):
cfg_list = [] cfg_list = []
current_case1 = [ current_case1 = [
#f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {PRIMARY_DIR}", #f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE0}1 {L0} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}1 {L0} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE1}1 {L1} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}" f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}2 {L2} {NON_PRIMARY_DIR}"
] ]
#current_case2 = [f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 {L0} {PRIMARY_DIR}"] #current_case2 = [f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 {L0} {PRIMARY_DIR}"]
current_case2 = [] current_case2 = []
for i in range(9): for i in range(9):
current_case2.append(f"dataDir {self.taos_data_dir}/{DATA_PRE0}{i+1} {L0} {NON_PRIMARY_DIR}") current_case2.append(f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}{i+1} {L0} {NON_PRIMARY_DIR}")
# TD-17773bug # TD-17773bug
current_case3 = [ current_case3 = [
#f"dataDir {self.taos_data_dir}/{DATA_PRE0}0 ", #f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}0 ",
f"dataDir {self.taos_data_dir}/{DATA_PRE0}1 {L0} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE0}1 {L0} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE1}0 {L1} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE1}0 {L1} {NON_PRIMARY_DIR}",
f"dataDir {self.taos_data_dir}/{DATA_PRE2}0 {L2} {NON_PRIMARY_DIR}", f"dataDir {self.taos_data_dir}{os.sep}{DATA_PRE2}0 {L2} {NON_PRIMARY_DIR}",
] ]
cfg_list.append(current_case1) cfg_list.append(current_case1)
cfg_list.append(current_case3) cfg_list.append(current_case3)

View File

@ -567,7 +567,7 @@ class TDTestCase:
if data_ct4_c10[i] is None: if data_ct4_c10[i] is None:
tdSql.checkData( i, 0, None ) tdSql.checkData( i, 0, None )
else: else:
time2str = str(int((data_ct4_c10[i]-datetime.datetime.fromtimestamp(0)).total_seconds()*1000)) time2str = str(int((data_ct4_c10[i]-datetime.datetime.fromtimestamp(0,data_ct4_c10[i].tzinfo)).total_seconds())*1000+int(data_ct4_c10[i].microsecond / 1000))
tdSql.checkData( i, 0, time2str ) tdSql.checkData( i, 0, time2str )
tdSql.query(f"select cast(c10 as nchar(32)) as b from {self.dbname}.t1") tdSql.query(f"select cast(c10 as nchar(32)) as b from {self.dbname}.t1")
for i in range(len(data_t1_c10)): for i in range(len(data_t1_c10)):
@ -576,7 +576,7 @@ class TDTestCase:
elif i == 10: elif i == 10:
continue continue
else: else:
time2str = str(int((data_t1_c10[i]-datetime.datetime.fromtimestamp(0)).total_seconds()*1000)) time2str = str(int((data_t1_c10[i]-datetime.datetime.fromtimestamp(0,data_t1_c10[i].tzinfo)).total_seconds())*1000+int(data_t1_c10[i].microsecond / 1000))
tdSql.checkData( i, 0, time2str ) tdSql.checkData( i, 0, time2str )
tdLog.printNoPrefix("==========step38: cast timestamp to binary, expect no changes ") tdLog.printNoPrefix("==========step38: cast timestamp to binary, expect no changes ")
@ -585,7 +585,7 @@ class TDTestCase:
if data_ct4_c10[i] is None: if data_ct4_c10[i] is None:
tdSql.checkData( i, 0, None ) tdSql.checkData( i, 0, None )
else: else:
time2str = str(int((data_ct4_c10[i]-datetime.datetime.fromtimestamp(0)).total_seconds()*1000)) time2str = str(int((data_ct4_c10[i]-datetime.datetime.fromtimestamp(0,data_ct4_c10[i].tzinfo)).total_seconds())*1000+int(data_ct4_c10[i].microsecond / 1000))
tdSql.checkData( i, 0, time2str ) tdSql.checkData( i, 0, time2str )
tdSql.query(f"select cast(c10 as binary(32)) as b from {self.dbname}.t1") tdSql.query(f"select cast(c10 as binary(32)) as b from {self.dbname}.t1")
for i in range(len(data_t1_c10)): for i in range(len(data_t1_c10)):
@ -594,7 +594,7 @@ class TDTestCase:
elif i == 10: elif i == 10:
continue continue
else: else:
time2str = str(int((data_t1_c10[i]-datetime.datetime.fromtimestamp(0)).total_seconds()*1000)) time2str = str(int((data_t1_c10[i]-datetime.datetime.fromtimestamp(0,data_t1_c10[i].tzinfo)).total_seconds())*1000+int(data_t1_c10[i].microsecond / 1000))
tdSql.checkData( i, 0, time2str ) tdSql.checkData( i, 0, time2str )
tdLog.printNoPrefix("==========step39: cast constant operation to bigint, expect change to int ") tdLog.printNoPrefix("==========step39: cast constant operation to bigint, expect change to int ")

View File

@ -64,61 +64,61 @@ class TDTestCase:
tdSql.query(f"select ts,mode(c1) from {dbname}.tb") tdSql.query(f"select ts,mode(c1) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 9) tdSql.checkData(0, 1, 9)
tdSql.query(f"select ts,mode(c2) from {dbname}.tb") tdSql.query(f"select ts,mode(c2) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -99999999999999999) tdSql.checkData(0, 1, -99999999999999999)
tdSql.query(f"select ts,mode(c3) from {dbname}.tb") tdSql.query(f"select ts,mode(c3) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -999) tdSql.checkData(0, 1, -999)
tdSql.query(f"select ts,mode(c4) from {dbname}.tb") tdSql.query(f"select ts,mode(c4) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -99) tdSql.checkData(0, 1, -99)
tdSql.query(f"select ts,mode(c5) from {dbname}.tb") tdSql.query(f"select ts,mode(c5) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -9.99) tdSql.checkData(0, 1, -9.99)
tdSql.query(f"select ts,mode(c6) from {dbname}.tb") tdSql.query(f"select ts,mode(c6) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -1e+21) tdSql.checkData(0, 1, -1e+21)
tdSql.query(f"select ts,mode(c7) from {dbname}.tb") tdSql.query(f"select ts,mode(c7) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, True) tdSql.checkData(0, 1, True)
tdSql.query(f"select ts,mode(c8) from {dbname}.tb") tdSql.query(f"select ts,mode(c8) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 'binary9') tdSql.checkData(0, 1, 'binary9')
tdSql.query(f"select ts,mode(c9) from {dbname}.tb") tdSql.query(f"select ts,mode(c9) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 'nchar9') tdSql.checkData(0, 1, 'nchar9')
tdSql.query(f"select ts,c3,c5,c8,mode(c1) from {dbname}.tb") tdSql.query(f"select ts,c3,c5,c8,mode(c1) from {dbname}.tb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2022, 12, 31, 1, 1, 36)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2022, 12, 31, 1, 1, 36).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -999) tdSql.checkData(0, 1, -999)
tdSql.checkData(0, 2, -9.99) tdSql.checkData(0, 2, -9.99)
tdSql.checkData(0, 3, 'binary9') tdSql.checkData(0, 3, 'binary9')
@ -128,61 +128,61 @@ class TDTestCase:
tdSql.query(f"select ts,mode(c1) from {dbname}.stb") tdSql.query(f"select ts,mode(c1) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 9) tdSql.checkData(0, 1, 9)
tdSql.query(f"select ts,mode(c2) from {dbname}.stb") tdSql.query(f"select ts,mode(c2) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -99999) tdSql.checkData(0, 1, -99999)
tdSql.query(f"select ts,mode(c3) from {dbname}.stb") tdSql.query(f"select ts,mode(c3) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -999) tdSql.checkData(0, 1, -999)
tdSql.query(f"select ts,mode(c4) from {dbname}.stb") tdSql.query(f"select ts,mode(c4) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 2)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 2).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -99) tdSql.checkData(0, 1, -99)
tdSql.query(f"select ts,mode(c5) from {dbname}.stb") tdSql.query(f"select ts,mode(c5) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -9.99) tdSql.checkData(0, 1, -9.99)
tdSql.query(f"select ts,mode(c6) from {dbname}.stb") tdSql.query(f"select ts,mode(c6) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, -99.99) tdSql.checkData(0, 1, -99.99)
tdSql.query(f"select ts,mode(c7) from {dbname}.stb") tdSql.query(f"select ts,mode(c7) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, True) tdSql.checkData(0, 1, True)
tdSql.query(f"select ts,mode(c8) from {dbname}.stb") tdSql.query(f"select ts,mode(c8) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 'binary9') tdSql.checkData(0, 1, 'binary9')
tdSql.query(f"select ts,mode(c9) from {dbname}.stb") tdSql.query(f"select ts,mode(c9) from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 'nchar9') tdSql.checkData(0, 1, 'nchar9')
tdSql.query(f"select ts,mode(c1),c3,c5,c8 from {dbname}.stb") tdSql.query(f"select ts,mode(c1),c3,c5,c8 from {dbname}.stb")
tdSql.checkRows(1) tdSql.checkRows(1)
ts = tdSql.getData(0, 0) ts = tdSql.getData(0, 0)
tdSql.checkEqual(ts, datetime.datetime(2020, 12, 11, 0, 0, 3)) tdSql.checkEqual(ts.astimezone(datetime.timezone.utc), datetime.datetime(2020, 12, 11, 0, 0, 3).astimezone(datetime.timezone.utc))
tdSql.checkData(0, 1, 9) tdSql.checkData(0, 1, 9)
tdSql.checkData(0, 2, -999) tdSql.checkData(0, 2, -999)
tdSql.checkData(0, 3, -9.99) tdSql.checkData(0, 3, -9.99)

View File

@ -35,7 +35,10 @@ class TDTestCase:
projPath = selfPath[:selfPath.find("tests")] projPath = selfPath[:selfPath.find("tests")]
for root, dirs, files in os.walk(projPath): for root, dirs, files in os.walk(projPath):
if ("taosd" in files): taosdFileName = "taosd"
if platform.system().lower() == 'windows':
taosdFileName = "taosd.exe"
if (taosdFileName in files):
rootRealPath = os.path.dirname(os.path.realpath(root)) rootRealPath = os.path.dirname(os.path.realpath(root))
if ("packaging" not in rootRealPath): if ("packaging" not in rootRealPath):
buildPath = root[:len(root)-len("/build/bin")] buildPath = root[:len(root)-len("/build/bin")]
@ -52,7 +55,10 @@ class TDTestCase:
tdLog.info("taosd found in %s" % buildPath) tdLog.info("taosd found in %s" % buildPath)
binPath = buildPath+ "/build/bin/" binPath = buildPath+ "/build/bin/"
os.system("%staosBenchmark -d %s -t %d -n %d -O %d -a %d -b float,double,nchar\(200\),binary\(50\) -T 50 -y " % (binPath,dbname,tables,per_table_num,order,replica)) cmd = "%staosBenchmark -d %s -t %d -n %d -O %d -a %d -b float,double,nchar\(200\),binary\(50\) -T 50 -y " % (binPath,dbname,tables,per_table_num,order,replica)
if platform.system().lower() == 'windows':
cmd = "%staosBenchmark -d %s -t %d -n %d -O %d -a %d -b float,double,nchar(200),binary(50) -T 50 -y " % (binPath,dbname,tables,per_table_num,order,replica)
os.system(cmd)
def sql_base(self,dbname): def sql_base(self,dbname):
self.check_sub(dbname) self.check_sub(dbname)

View File

@ -292,9 +292,9 @@ class TDTestCase:
maxQnode=tdSql.getData(0,0) maxQnode=tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
minQnode=tdSql.getData(0,0) minQnode=tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionQnode=tdSql.queryResult unionQnode=tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionallQnode=tdSql.queryResult unionallQnode=tdSql.queryResult
# tdSql.query("select * from information_schema.ins_qnodes;") # tdSql.query("select * from information_schema.ins_qnodes;")
@ -306,10 +306,10 @@ class TDTestCase:
tdSql.checkData(0, 0, "%s"%maxQnode) tdSql.checkData(0, 0, "%s"%maxQnode)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
tdSql.checkData(0, 0, "%s"%minQnode) tdSql.checkData(0, 0, "%s"%minQnode)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionVnode=tdSql.queryResult unionVnode=tdSql.queryResult
assert unionQnode == unionVnode assert unionQnode == unionVnode
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionallVnode=tdSql.queryResult unionallVnode=tdSql.queryResult
assert unionallQnode == unionallVnode assert unionallQnode == unionallVnode
@ -340,9 +340,9 @@ class TDTestCase:
assert maxQnode==tdSql.getData(0,0) assert maxQnode==tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
assert minQnode==tdSql.getData(0,0) assert minQnode==tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionQnode==tdSql.queryResult assert unionQnode==tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionallQnode==tdSql.queryResult assert unionallQnode==tdSql.queryResult
# tdSql.query("select * from information_schema.ins_qnodes;") # tdSql.query("select * from information_schema.ins_qnodes;")
@ -354,8 +354,8 @@ class TDTestCase:
assert maxQnode==tdSql.getData(0,0) assert maxQnode==tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
assert minQnode==tdSql.getData(0,0) assert minQnode==tdSql.getData(0,0)
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
# tdSql.execute("create qnode on dnode %s"%dnodeId) # tdSql.execute("create qnode on dnode %s"%dnodeId)
@ -387,9 +387,9 @@ class TDTestCase:
assert maxQnode==tdSql.getData(0,0) assert maxQnode==tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
assert minQnode==tdSql.getData(0,0) assert minQnode==tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionQnode==tdSql.queryResult assert unionQnode==tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionallQnode==tdSql.queryResult assert unionallQnode==tdSql.queryResult
queryPolicy=1 queryPolicy=1
@ -412,9 +412,9 @@ class TDTestCase:
assert maxQnode==tdSql.getData(0,0) assert maxQnode==tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
assert minQnode==tdSql.getData(0,0) assert minQnode==tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionQnode==tdSql.queryResult assert unionQnode==tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
assert unionallQnode==tdSql.queryResult assert unionallQnode==tdSql.queryResult
# test case : queryPolicy = 2 # test case : queryPolicy = 2
@ -443,8 +443,8 @@ class TDTestCase:
tdSql.execute("use db1;") tdSql.execute("use db1;")
tdSql.error("select max(c1) from stb10;") tdSql.error("select max(c1) from stb10;")
tdSql.error("select min(c1) from stb11;") tdSql.error("select min(c1) from stb11;")
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
tdSql.query("select max(c1) from stb10_0;") tdSql.query("select max(c1) from stb10_0;")
tdSql.query("select min(c1) from stb11_0;") tdSql.query("select min(c1) from stb11_0;")
@ -464,9 +464,9 @@ class TDTestCase:
maxQnode=tdSql.getData(0,0) maxQnode=tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;") tdSql.query("select min(c1) from stb11;")
minQnode=tdSql.getData(0,0) minQnode=tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionQnode=tdSql.queryResult unionQnode=tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
unionallQnode=tdSql.queryResult unionallQnode=tdSql.queryResult
# tdSql.query("select * from information_schema.ins_qnodes;") # tdSql.query("select * from information_schema.ins_qnodes;")
@ -478,8 +478,8 @@ class TDTestCase:
tdSql.error("select max(c1) from stb10;") tdSql.error("select max(c1) from stb10;")
tdSql.error("select min(c1) from stb11;") tdSql.error("select min(c1) from stb11;")
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
tdSql.error("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.error("select c0,c1 from(select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000) order by c0,c1;")
# run case # run case
def run(self): def run(self):

View File

@ -18,7 +18,10 @@ class MyDnodes(TDDnodes):
def __init__(self ,dnodes_lists): def __init__(self ,dnodes_lists):
super(MyDnodes,self).__init__() super(MyDnodes,self).__init__()
self.dnodes = dnodes_lists # dnode must be TDDnode instance self.dnodes = dnodes_lists # dnode must be TDDnode instance
self.simDeployed = False if platform.system().lower() == 'windows':
self.simDeployed = True
else:
self.simDeployed = False
class TDTestCase: class TDTestCase:
noConn = True noConn = True

View File

@ -19,7 +19,10 @@ class MyDnodes(TDDnodes):
def __init__(self ,dnodes_lists): def __init__(self ,dnodes_lists):
super(MyDnodes,self).__init__() super(MyDnodes,self).__init__()
self.dnodes = dnodes_lists # dnode must be TDDnode instance self.dnodes = dnodes_lists # dnode must be TDDnode instance
self.simDeployed = False if platform.system().lower() == 'windows':
self.simDeployed = True
else:
self.simDeployed = False
class TDTestCase: class TDTestCase:
@ -111,6 +114,8 @@ class TDTestCase:
dnode_first_host = dnode.cfgDict["firstEp"].split(":")[0] dnode_first_host = dnode.cfgDict["firstEp"].split(":")[0]
dnode_first_port = dnode.cfgDict["firstEp"].split(":")[-1] dnode_first_port = dnode.cfgDict["firstEp"].split(":")[-1]
cmd = f" taos -h {dnode_first_host} -P {dnode_first_port} -s ' create dnode \"{dnode_id} \" ' ;" cmd = f" taos -h {dnode_first_host} -P {dnode_first_port} -s ' create dnode \"{dnode_id} \" ' ;"
if platform.system().lower() == 'windows':
cmd = f" taos -h {dnode_first_host} -P {dnode_first_port} -s \"create dnode \\\"{dnode_id}\\\""
tdLog.debug(cmd) tdLog.debug(cmd)
if os.system(cmd) != 0: if os.system(cmd) != 0:
raise Exception("failed to execute system command. cmd: %s" % cmd) raise Exception("failed to execute system command. cmd: %s" % cmd)

View File

@ -129,11 +129,16 @@ class TMQCom:
def stopTmqSimProcess(self, processorName): def stopTmqSimProcess(self, processorName):
psCmd = "unset LD_PRELOAD; ps -ef|grep -w %s|grep -v grep | awk '{print $2}'"%(processorName) psCmd = "unset LD_PRELOAD; ps -ef|grep -w %s|grep -v grep | awk '{print $2}'"%(processorName)
if platform.system().lower() == 'windows':
psCmd = "ps -ef|grep -w %s|grep -v grep | awk '{print $2}'"%(processorName)
processID = subprocess.check_output(psCmd, shell=True).decode("utf-8") processID = subprocess.check_output(psCmd, shell=True).decode("utf-8")
onlyKillOnceWindows = 0 onlyKillOnceWindows = 0
while(processID): while(processID):
if not platform.system().lower() == 'windows' or (onlyKillOnceWindows == 0 and platform.system().lower() == 'windows'): if not platform.system().lower() == 'windows' or (onlyKillOnceWindows == 0 and platform.system().lower() == 'windows'):
killCmd = "unset LD_PRELOAD; kill -INT %s > /dev/null 2>&1" % processID if platform.system().lower() == 'windows':
killCmd = "kill -INT %s > /dev/nul 2>&1" % processID
else:
killCmd = "unset LD_PRELOAD; kill -INT %s > /dev/null 2>&1" % processID
os.system(killCmd) os.system(killCmd)
onlyKillOnceWindows = 1 onlyKillOnceWindows = 1
time.sleep(0.2) time.sleep(0.2)

View File

@ -128,7 +128,7 @@ class TDTestCase:
ifManualCommit = 1 ifManualCommit = 1
keyList = 'group.id:cgrp1,\ keyList = 'group.id:cgrp1,\
enable.auto.commit:true,\ enable.auto.commit:true,\
auto.commit.interval.ms:1000,\ auto.commit.interval.ms:200,\
auto.offset.reset:earliest' auto.offset.reset:earliest'
tmqCom.insertConsumerInfo(consumerId, expectrowcnt,topicList,keyList,ifcheckdata,ifManualCommit) tmqCom.insertConsumerInfo(consumerId, expectrowcnt,topicList,keyList,ifcheckdata,ifManualCommit)

View File

@ -0,0 +1,96 @@
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( set "DEL=%%a")
set /a a=0
if "%1" == "full" (
echo Windows Taosd Full Test
set /a exitNum=0
del /Q /F failed.txt
set caseFile="win-test-file"
if not "%2" == "" (
set caseFile="%2"
)
for /F "usebackq tokens=*" %%i in (!caseFile!) do (
call :CheckSkipCase %%i
if !skipCase! == false (
set line=%%i
if "!line:~,7!" == "python3" (
set /a a+=1
echo !a! Processing %%i
call :GetTimeSeconds !time!
set time1=!_timeTemp!
echo Start at !time!
call %%i ARG1 > result_!a!.txt 2>error_!a!.txt || set errorlevel=8
if errorlevel 1 ( call :colorEcho 0c "failed" &echo. && set /a exitNum=8 && echo %%i >>failed.txt ) else ( call :colorEcho 0a "Success" &echo. )
)
)
)
exit /b !exitNum!
)
echo Windows Taosd Test
for /F "usebackq tokens=*" %%i in (win-test-file) do (
for /f "tokens=1* delims= " %%a in ("%%i") do if not "%%a" == "@REM" (
set /a a+=1
set timeNow=!time!
echo !a! Processing %%i
call :GetTimeSeconds !timeNow!
set time1=!_timeTemp!
echo Start at !timeNow!
call %%i ARG1 > result_!a!.txt 2>error_!a!.txt || set errorlevel=8
if errorlevel 1 ( call :colorEcho 0c "failed" &echo. && echo result: && cat result_!a!.txt && echo error: && cat error_!a!.txt && exit /b 8 ) else ( call :colorEcho 0a "Success" &echo. )
)
)
@REM echo Linux Taosd Test
@REM for /F "usebackq tokens=*" %%i in (simpletest.bat) do (
@REM for /f "tokens=1* delims= " %%a in ("%%i") do if not "%%a" == "@REM" (
@REM set /a a+=1
@REM echo !a! Processing %%i
@REM call :GetTimeSeconds !time!
@REM set time1=!_timeTemp!
@REM echo Start at !time!
@REM call %%i ARG1 -m %1 > result_!a!.txt 2>error_!a!.txt
@REM if errorlevel 1 ( call :colorEcho 0c "failed" &echo. && echo result: && cat result_!a!.txt && echo error: && cat error_!a!.txt && exit 8 ) else ( call :colorEcho 0a "Success" &echo. )
@REM )
@REM )
exit /b
:colorEcho
set timeNow=%time%
call :GetTimeSeconds %timeNow%
set time2=%_timeTemp%
set /a interTime=%time2% - %time1%
echo End at %timeNow% , cast %interTime%s
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
goto :eof
:GetTimeSeconds
set tt=%1
set tt=%tt:.= %
set tt=%tt::= %
set tt=%tt: 0= %
set /a index=1
for %%a in (%tt%) do (
if !index! EQU 1 (
set /a hh=%%a
)^
else if !index! EQU 2 (
set /a mm=%%a
)^
else if !index! EQU 3 (
set /a ss=%%a
)
set /a index=index+1
)
set /a _timeTemp=(%hh%*60+%mm%)*60+%ss%
goto :eof
:CheckSkipCase
set skipCase=false
if "%*" == "python3 ./test.py -f 1-insert/insertWithMoreVgroup.py" ( set skipCase=false )
if "%*" == "python3 ./test.py -f 2-query/queryQnode.py" ( set skipCase=false )
echo %* | grep "\-R" && set skipCase=true
:goto eof

View File

@ -291,9 +291,9 @@ if __name__ == "__main__":
print(r) print(r)
else: else:
pass pass
if restful: # if restful:
tAdapter.init(deployPath, masterIp) tAdapter.init(deployPath, masterIp)
tAdapter.stop(force_kill=True) tAdapter.stop(force_kill=True)
if dnodeNums == 1 : if dnodeNums == 1 :
tdDnodes.deploy(1,updateCfgDict) tdDnodes.deploy(1,updateCfgDict)
@ -306,7 +306,7 @@ if __name__ == "__main__":
if queryPolicy != 1: if queryPolicy != 1:
queryPolicy=int(queryPolicy) queryPolicy=int(queryPolicy)
if restful: if restful:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
else: else:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
@ -343,7 +343,7 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
# tdLog.info(tdDnodes.getSimCfgPath(),host) # tdLog.info(tdDnodes.getSimCfgPath(),host)
if createDnodeNums == 1: if createDnodeNums == 1:
createDnodeNums=dnodeNums createDnodeNums=dnodeNums
@ -359,7 +359,7 @@ if __name__ == "__main__":
if queryPolicy != 1: if queryPolicy != 1:
queryPolicy=int(queryPolicy) queryPolicy=int(queryPolicy)
if restful: if restful:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
else: else:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
@ -382,11 +382,44 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect(host="%s"%(host), config=tdDnodes.sim.getCfgDir()) conn = taos.connect(host="%s"%(host), config=tdDnodes.sim.getCfgDir())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
if is_test_framework:
tdCases.runOneWindows(conn, fileName) if testCluster:
tdLog.info("Procedures for testing cluster")
if fileName == "all":
tdCases.runAllCluster()
else:
tdCases.runOneCluster(fileName)
else: else:
tdCases.runAllWindows(conn) tdLog.info("Procedures for testing self-deployment")
if not restful:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
else:
conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
if fileName == "all":
tdCases.runAllWindows(conn)
else:
tdCases.runOneWindows(conn, fileName, replicaVar)
if restart:
if fileName == "all":
tdLog.info("not need to query ")
else:
sp = fileName.rsplit(".", 1)
if len(sp) == 2 and sp[1] == "py":
tdDnodes.stopAll()
tdDnodes.start(1)
time.sleep(1)
if not restful:
conn = taos.connect( host, config=tdDnodes.getSimCfgPath())
else:
conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
tdLog.info("Procedures for tdengine deployed in %s" % (host))
tdLog.info("query test after taosd restart")
tdCases.runOneWindows(conn, sp[0] + "_" + "restart.py", replicaVar)
else:
tdLog.info("not need to query")
else: else:
tdDnodes.setKillValgrind(killValgrind) tdDnodes.setKillValgrind(killValgrind)
tdDnodes.init(deployPath, masterIp) tdDnodes.init(deployPath, masterIp)
@ -431,7 +464,7 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
# tdSql.init(conn.cursor()) # tdSql.init(conn.cursor())
# tdSql.execute("create qnode on dnode 1") # tdSql.execute("create qnode on dnode 1")
# tdSql.execute('alter local "queryPolicy" "%d"'%queryPolicy) # tdSql.execute('alter local "queryPolicy" "%d"'%queryPolicy)
@ -479,7 +512,7 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
print(tdDnodes.getSimCfgPath(),host) print(tdDnodes.getSimCfgPath(),host)
if createDnodeNums == 1: if createDnodeNums == 1:
createDnodeNums=dnodeNums createDnodeNums=dnodeNums
@ -497,7 +530,7 @@ if __name__ == "__main__":
if queryPolicy != 1: if queryPolicy != 1:
queryPolicy=int(queryPolicy) queryPolicy=int(queryPolicy)
if restful: if restful:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
else: else:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
@ -526,7 +559,7 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect(host,config=tdDnodes.getSimCfgPath()) conn = taos.connect(host,config=tdDnodes.getSimCfgPath())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
if fileName == "all": if fileName == "all":
tdCases.runAllLinux(conn) tdCases.runAllLinux(conn)
@ -545,7 +578,7 @@ if __name__ == "__main__":
if not restful: if not restful:
conn = taos.connect( host, config=tdDnodes.getSimCfgPath()) conn = taos.connect( host, config=tdDnodes.getSimCfgPath())
else: else:
conn = taosrest.connect(url=f"http://{host}:6041") conn = taosrest.connect(url=f"http://{host}:6041",timezone="utc")
tdLog.info("Procedures for tdengine deployed in %s" % (host)) tdLog.info("Procedures for tdengine deployed in %s" % (host))
tdLog.info("query test after taosd restart") tdLog.info("query test after taosd restart")
tdCases.runOneLinux(conn, sp[0] + "_" + "restart.py", replicaVar) tdCases.runOneLinux(conn, sp[0] + "_" + "restart.py", replicaVar)

View File

@ -0,0 +1,637 @@
python3 ./test.py -f 1-insert/database_pre_suf.py
python3 ./test.py -f 0-others/balance_vgroups_r1.py -N 6
python3 ./test.py -f 0-others/taosShell.py
python3 ./test.py -f 0-others/taosShellError.py
python3 ./test.py -f 0-others/taosShellNetChk.py
python3 ./test.py -f 0-others/telemetry.py
python3 ./test.py -f 0-others/backquote_check.py
python3 ./test.py -f 0-others/taosdMonitor.py
python3 ./test.py -f 0-others/taosdShell.py -N 5 -M 3 -Q 3
python3 ./test.py -f 0-others/cachemodel.py
python3 ./test.py -f 0-others/sysinfo.py
python3 ./test.py -f 0-others/user_control.py
python3 ./test.py -f 0-others/user_manage.py
python3 ./test.py -f 0-others/fsync.py
python3 ./test.py -f 0-others/compatibility.py
python3 ./test.py -f 0-others/tag_index_basic.py
# python3 ./test.py -f 1-insert/alter_database.py
python3 ./test.py -f 1-insert/influxdb_line_taosc_insert.py
python3 ./test.py -f 1-insert/opentsdb_telnet_line_taosc_insert.py
python3 ./test.py -f 1-insert/opentsdb_json_taosc_insert.py
python3 ./test.py -f 1-insert/test_stmt_muti_insert_query.py
python3 ./test.py -f 1-insert/test_stmt_set_tbname_tag.py
python3 ./test.py -f 1-insert/alter_stable.py
python3 ./test.py -f 1-insert/alter_table.py
python3 ./test.py -f 1-insert/boundary.py
python3 ./test.py -f 1-insert/insertWithMoreVgroup.py
python3 ./test.py -f 1-insert/table_comment.py
python3 ./test.py -f 1-insert/time_range_wise.py
python3 ./test.py -f 1-insert/block_wise.py
python3 ./test.py -f 1-insert/create_retentions.py
python3 ./test.py -f 1-insert/mutil_stage.py
python3 ./test.py -f 1-insert/table_param_ttl.py
python3 ./test.py -f 1-insert/table_param_ttl.py -R
python3 ./test.py -f 1-insert/update_data_muti_rows.py
python3 ./test.py -f 1-insert/db_tb_name_check.py
python3 ./test.py -f 1-insert/InsertFuturets.py
python3 ./test.py -f 0-others/show.py
python3 ./test.py -f 0-others/information_schema.py
python3 ./test.py -f 2-query/abs.py
python3 ./test.py -f 2-query/abs.py -R
python3 ./test.py -f 2-query/and_or_for_byte.py
python3 ./test.py -f 2-query/and_or_for_byte.py -R
python3 ./test.py -f 2-query/apercentile.py
python3 ./test.py -f 2-query/apercentile.py -R
python3 ./test.py -f 2-query/arccos.py
python3 ./test.py -f 2-query/arccos.py -R
python3 ./test.py -f 2-query/arcsin.py
python3 ./test.py -f 2-query/arcsin.py -R
python3 ./test.py -f 2-query/arctan.py
python3 ./test.py -f 2-query/arctan.py -R
python3 ./test.py -f 2-query/avg.py
python3 ./test.py -f 2-query/avg.py -R
python3 ./test.py -f 2-query/between.py
python3 ./test.py -f 2-query/between.py -R
python3 ./test.py -f 2-query/bottom.py
python3 ./test.py -f 2-query/bottom.py -R
python3 ./test.py -f 2-query/cast.py
python3 ./test.py -f 2-query/cast.py -R
python3 ./test.py -f 2-query/ceil.py
python3 ./test.py -f 2-query/ceil.py -R
python3 ./test.py -f 2-query/char_length.py
python3 ./test.py -f 2-query/char_length.py -R
python3 ./test.py -f 2-query/check_tsdb.py
python3 ./test.py -f 2-query/check_tsdb.py -R
python3 ./test.py -f 2-query/concat.py
python3 ./test.py -f 2-query/concat.py -R
python3 ./test.py -f 2-query/concat_ws.py
python3 ./test.py -f 2-query/concat_ws.py -R
python3 ./test.py -f 2-query/concat_ws2.py
python3 ./test.py -f 2-query/concat_ws2.py -R
python3 ./test.py -f 2-query/cos.py
python3 ./test.py -f 2-query/cos.py -R
python3 ./test.py -f 2-query/count_partition.py
python3 ./test.py -f 2-query/count_partition.py -R
python3 ./test.py -f 2-query/count.py
python3 ./test.py -f 2-query/count.py -R
python3 ./test.py -f 2-query/countAlwaysReturnValue.py
python3 ./test.py -f 2-query/countAlwaysReturnValue.py -R
python3 ./test.py -f 2-query/db.py
python3 ./test.py -f 2-query/db.py -N 3 -n 3 -R
python3 ./test.py -f 2-query/diff.py
python3 ./test.py -f 2-query/diff.py -R
python3 ./test.py -f 2-query/distinct.py
python3 ./test.py -f 2-query/distinct.py -R
python3 ./test.py -f 2-query/distribute_agg_apercentile.py
python3 ./test.py -f 2-query/distribute_agg_apercentile.py -R
python3 ./test.py -f 2-query/distribute_agg_avg.py
python3 ./test.py -f 2-query/distribute_agg_avg.py -R
python3 ./test.py -f 2-query/distribute_agg_count.py
python3 ./test.py -f 2-query/distribute_agg_count.py -R
python3 ./test.py -f 2-query/distribute_agg_max.py
python3 ./test.py -f 2-query/distribute_agg_max.py -R
python3 ./test.py -f 2-query/distribute_agg_min.py
python3 ./test.py -f 2-query/distribute_agg_min.py -R
python3 ./test.py -f 2-query/distribute_agg_spread.py
python3 ./test.py -f 2-query/distribute_agg_spread.py -R
python3 ./test.py -f 2-query/distribute_agg_stddev.py
python3 ./test.py -f 2-query/distribute_agg_stddev.py -R
python3 ./test.py -f 2-query/distribute_agg_sum.py
python3 ./test.py -f 2-query/distribute_agg_sum.py -R
python3 ./test.py -f 2-query/explain.py
python3 ./test.py -f 2-query/explain.py -R
python3 ./test.py -f 2-query/first.py
python3 ./test.py -f 2-query/first.py -R
python3 ./test.py -f 2-query/floor.py
python3 ./test.py -f 2-query/floor.py -R
python3 ./test.py -f 2-query/function_null.py
python3 ./test.py -f 2-query/function_null.py -R
python3 ./test.py -f 2-query/function_stateduration.py
python3 ./test.py -f 2-query/function_stateduration.py -R
python3 ./test.py -f 2-query/histogram.py
python3 ./test.py -f 2-query/histogram.py -R
python3 ./test.py -f 2-query/hyperloglog.py
python3 ./test.py -f 2-query/hyperloglog.py -R
python3 ./test.py -f 2-query/interp.py
python3 ./test.py -f 2-query/interp.py -R
python3 ./test.py -f 2-query/irate.py
python3 ./test.py -f 2-query/irate.py -R
python3 ./test.py -f 2-query/join.py
python3 ./test.py -f 2-query/join.py -R
python3 ./test.py -f 2-query/last_row.py
python3 ./test.py -f 2-query/last_row.py -R
python3 ./test.py -f 2-query/last.py
python3 ./test.py -f 2-query/last.py -R
python3 ./test.py -f 2-query/leastsquares.py
python3 ./test.py -f 2-query/leastsquares.py -R
python3 ./test.py -f 2-query/length.py
python3 ./test.py -f 2-query/length.py -R
python3 ./test.py -f 2-query/limit.py
python3 ./test.py -f 2-query/log.py
python3 ./test.py -f 2-query/log.py -R
python3 ./test.py -f 2-query/lower.py
python3 ./test.py -f 2-query/lower.py -R
python3 ./test.py -f 2-query/ltrim.py
python3 ./test.py -f 2-query/ltrim.py -R
python3 ./test.py -f 2-query/mavg.py
python3 ./test.py -f 2-query/mavg.py -R
python3 ./test.py -f 2-query/max_partition.py
python3 ./test.py -f 2-query/max_partition.py -R
python3 ./test.py -f 2-query/max_min_last_interval.py
python3 ./test.py -f 2-query/max.py
python3 ./test.py -f 2-query/max.py -R
python3 ./test.py -f 2-query/min.py
python3 ./test.py -f 2-query/min.py -R
python3 ./test.py -f 2-query/mode.py
python3 ./test.py -f 2-query/mode.py -R
python3 ./test.py -f 2-query/Now.py
python3 ./test.py -f 2-query/Now.py -R
python3 ./test.py -f 2-query/percentile.py
python3 ./test.py -f 2-query/percentile.py -R
python3 ./test.py -f 2-query/pow.py
python3 ./test.py -f 2-query/pow.py -R
python3 ./test.py -f 2-query/query_cols_tags_and_or.py
python3 ./test.py -f 2-query/query_cols_tags_and_or.py -R
python3 ./test.py -f 2-query/round.py
python3 ./test.py -f 2-query/round.py -R
python3 ./test.py -f 2-query/rtrim.py
python3 ./test.py -f 2-query/rtrim.py -R
python3 ./test.py -f 2-query/sample.py
python3 ./test.py -f 2-query/sample.py -R
python3 ./test.py -f 2-query/sin.py
python3 ./test.py -f 2-query/sin.py -R
python3 ./test.py -f 2-query/smaTest.py
python3 ./test.py -f 2-query/smaTest.py -R
python3 ./test.py -f 2-query/sml.py
python3 ./test.py -f 2-query/sml.py -R
python3 ./test.py -f 2-query/spread.py
python3 ./test.py -f 2-query/spread.py -R
python3 ./test.py -f 2-query/sqrt.py
python3 ./test.py -f 2-query/sqrt.py -R
python3 ./test.py -f 2-query/statecount.py
python3 ./test.py -f 2-query/statecount.py -R
python3 ./test.py -f 2-query/stateduration.py
python3 ./test.py -f 2-query/stateduration.py -R
python3 ./test.py -f 2-query/substr.py
python3 ./test.py -f 2-query/substr.py -R
python3 ./test.py -f 2-query/sum.py
python3 ./test.py -f 2-query/sum.py -R
python3 ./test.py -f 2-query/tail.py
python3 ./test.py -f 2-query/tail.py -R
python3 ./test.py -f 2-query/tan.py
python3 ./test.py -f 2-query/tan.py -R
python3 ./test.py -f 2-query/Timediff.py
python3 ./test.py -f 2-query/Timediff.py -R
python3 ./test.py -f 2-query/timetruncate.py
python3 ./test.py -f 2-query/timetruncate.py -R
python3 ./test.py -f 2-query/timezone.py
python3 ./test.py -f 2-query/timezone.py -R
python3 ./test.py -f 2-query/To_iso8601.py
python3 ./test.py -f 2-query/To_iso8601.py -R
python3 ./test.py -f 2-query/To_unixtimestamp.py
python3 ./test.py -f 2-query/To_unixtimestamp.py -R
python3 ./test.py -f 2-query/Today.py
python3 ./test.py -f 2-query/Today.py -R
python3 ./test.py -f 2-query/top.py
python3 ./test.py -f 2-query/top.py -R
python3 ./test.py -f 2-query/tsbsQuery.py
python3 ./test.py -f 2-query/tsbsQuery.py -R
python3 ./test.py -f 2-query/ttl_comment.py
python3 ./test.py -f 2-query/ttl_comment.py -R
python3 ./test.py -f 2-query/twa.py
python3 ./test.py -f 2-query/twa.py -R
python3 ./test.py -f 2-query/union.py
python3 ./test.py -f 2-query/union.py -R
python3 ./test.py -f 2-query/unique.py
python3 ./test.py -f 2-query/unique.py -R
python3 ./test.py -f 2-query/upper.py
python3 ./test.py -f 2-query/upper.py -R
python3 ./test.py -f 2-query/varchar.py
python3 ./test.py -f 2-query/varchar.py -R
python3 ./test.py -f 2-query/case_when.py
python3 ./test.py -f 2-query/case_when.py -R
python3 ./test.py -f 2-query/blockSMA.py
python3 ./test.py -f 2-query/blockSMA.py -R
python3 ./test.py -f 1-insert/update_data.py
python3 ./test.py -f 1-insert/tb_100w_data_order.py
python3 ./test.py -f 1-insert/delete_stable.py
python3 ./test.py -f 1-insert/delete_childtable.py
python3 ./test.py -f 1-insert/delete_normaltable.py
python3 ./test.py -f 1-insert/keep_expired.py
python3 ./test.py -f 1-insert/drop.py
python3 ./test.py -f 1-insert/drop.py -N 3 -M 3 -i False -n 3
python3 ./test.py -f 2-query/join2.py
python3 ./test.py -f 2-query/union1.py
python3 ./test.py -f 2-query/concat2.py
python3 ./test.py -f 2-query/json_tag.py
python3 ./test.py -f 2-query/nestedQuery.py
python3 ./test.py -f 2-query/nestedQueryInterval.py
python3 ./test.py -f 2-query/nestedQuery_str.py
python3 ./test.py -f 2-query/nestedQuery_math.py
python3 ./test.py -f 2-query/nestedQuery_time.py
python3 ./test.py -f 2-query/stablity.py
python3 ./test.py -f 2-query/stablity_1.py
python3 ./test.py -f 2-query/elapsed.py
python3 ./test.py -f 2-query/csum.py
python3 ./test.py -f 2-query/function_diff.py
python3 ./test.py -f 2-query/tagFilter.py
python3 ./test.py -f 2-query/queryQnode.py
python3 ./test.py -f 6-cluster/5dnode1mnode.py
python3 ./test.py -f 6-cluster/5dnode2mnode.py -N 5
python3 ./test.py -f 6-cluster/5dnode3mnodeStop.py -N 5 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeStop.py -N 5 -M 3 -i False
python3 ./test.py -f 6-cluster/5dnode3mnodeStop2Follower.py -N 5 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeStop2Follower.py -N 5 -M 3 -i False
python3 ./test.py -f 6-cluster/5dnode3mnodeStopLoop.py -N 5 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopDnodeCreateDb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopDnodeCreateDb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopMnodeCreateDb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopMnodeCreateDb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopVnodeCreateDb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopVnodeCreateDb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopDnodeModifyMeta.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopMnodeModifyMeta.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopDnodeCreateStb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopDnodeCreateStb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopMnodeCreateStb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopMnodeCreateStb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopVnodeCreateStb.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeSep1VnodeStopVnodeCreateStb.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeRestartDnodeInsertData.py -N 6 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeRestartDnodeInsertData.py -N 6 -M 3 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeAdd1Ddnoe.py -N 7 -M 3 -C 6
python3 ./test.py -f 6-cluster/5dnode3mnodeAdd1Ddnoe.py -N 7 -M 3 -C 6 -n 3
python3 ./test.py -f 6-cluster/5dnode3mnodeRecreateMnode.py -N 5 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeStopFollowerLeader.py -N 5 -M 3
python3 ./test.py -f 6-cluster/5dnode3mnodeStop2Follower.py -N 5 -M 3
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_createDb_replica1.py -N 4 -M 1
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica1_insertdatas.py -N 4 -M 1
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica1_insertdatas_querys.py -N 4 -M 1
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_insertdatas.py -N 4 -M 1
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_insertdatas_querys.py -N 4 -M 1
python3 ./test.py -f 6-cluster/vnode/4dnode1mnode_basic_replica3_vgroups.py -N 4 -M 1
python3 ./test.py -f 7-tmq/create_wrong_topic.py
python3 ./test.py -f 7-tmq/dropDbR3ConflictTransaction.py -N 3
python3 ./test.py -f 7-tmq/basic5.py
python3 ./test.py -f 7-tmq/subscribeDb.py -N 3 -n 3
python3 ./test.py -f 7-tmq/subscribeDb0.py -N 3 -n 3
python3 ./test.py -f 7-tmq/subscribeDb1.py
python3 ./test.py -f 7-tmq/subscribeDb2.py
python3 ./test.py -f 7-tmq/subscribeDb3.py
python3 ./test.py -f 7-tmq/subscribeDb4.py
python3 ./test.py -f 7-tmq/subscribeStb.py
python3 ./test.py -f 7-tmq/subscribeStb0.py
python3 ./test.py -f 7-tmq/subscribeStb1.py
python3 ./test.py -f 7-tmq/subscribeStb2.py
python3 ./test.py -f 7-tmq/subscribeStb3.py
python3 ./test.py -f 7-tmq/subscribeStb4.py
python3 ./test.py -f 7-tmq/db.py
python3 ./test.py -f 7-tmq/tmqError.py
python3 ./test.py -f 7-tmq/schema.py
python3 ./test.py -f 7-tmq/stbFilter.py
python3 ./test.py -f 7-tmq/tmqCheckData.py
python3 ./test.py -f 7-tmq/tmqCheckData1.py
python3 ./test.py -f 7-tmq/tmqConsumerGroup.py
python3 ./test.py -f 7-tmq/tmqShow.py
python3 ./test.py -f 7-tmq/tmqAlterSchema.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb.py -N 3 -n 3
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1.py -N 3 -n 3
python3 ./test.py -f 7-tmq/tmqConsFromTsdb-mutilVg.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb-1ctb.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-1ctb.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb-1ctb-funcNFilter.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb-mutilVg-mutilCtb-funcNFilter.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb-mutilVg-mutilCtb.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-1ctb-funcNFilter.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py
python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb.py
python3 ./test.py -f 7-tmq/tmqAutoCreateTbl.py
python3 ./test.py -f 7-tmq/tmqDnodeRestart.py
python3 ./test.py -f 7-tmq/tmqDnodeRestart1.py
python3 ./test.py -f 7-tmq/tmqUpdate-1ctb.py
python3 ./test.py -f 7-tmq/tmqUpdateWithConsume.py -N 3 -n 3
python3 ./test.py -f 7-tmq/tmqUpdate-multiCtb-snapshot0.py
python3 ./test.py -f 7-tmq/tmqUpdate-multiCtb-snapshot1.py
python3 ./test.py -f 7-tmq/tmqDelete-1ctb.py
python3 ./test.py -f 7-tmq/tmqDelete-multiCtb.py -N 3 -n 3
python3 ./test.py -f 7-tmq/tmqDropStb.py
python3 ./test.py -f 7-tmq/tmqDropStbCtb.py
python3 ./test.py -f 7-tmq/tmqDropNtb-snapshot0.py
python3 ./test.py -f 7-tmq/tmqDropNtb-snapshot1.py
python3 ./test.py -f 7-tmq/stbTagFilter-1ctb.py
python3 ./test.py -f 7-tmq/dataFromTsdbNWal.py
python3 ./test.py -f 7-tmq/dataFromTsdbNWal-multiCtb.py
python3 ./test.py -f 7-tmq/tmq_taosx.py
python3 ./test.py -f 7-tmq/stbTagFilter-multiCtb.py
python3 ./test.py -f 99-TDcase/TD-19201.py
python3 ./test.py -f 99-TDcase/TD-21561.py
python3 ./test.py -f 7-tmq/tmqSubscribeStb-r3.py -N 5
python3 ./test.py -f 7-tmq/tmq3mnodeSwitch.py -N 6 -M 3
python3 ./test.py -f 7-tmq/tmq3mnodeSwitch.py -N 6 -M 3 -n 3
python3 ./test.py -f 2-query/between.py -Q 2
python3 ./test.py -f 2-query/distinct.py -Q 2
python3 ./test.py -f 2-query/varchar.py -Q 2
python3 ./test.py -f 2-query/ltrim.py -Q 2
python3 ./test.py -f 2-query/rtrim.py -Q 2
python3 ./test.py -f 2-query/length.py -Q 2
python3 ./test.py -f 2-query/char_length.py -Q 2
python3 ./test.py -f 2-query/upper.py -Q 2
python3 ./test.py -f 2-query/lower.py -Q 2
python3 ./test.py -f 2-query/join.py -Q 2
python3 ./test.py -f 2-query/join2.py -Q 2
python3 ./test.py -f 2-query/cast.py -Q 2
python3 ./test.py -f 2-query/substr.py -Q 2
python3 ./test.py -f 2-query/union.py -Q 2
python3 ./test.py -f 2-query/union1.py -Q 2
python3 ./test.py -f 2-query/concat.py -Q 2
python3 ./test.py -f 2-query/concat2.py -Q 2
python3 ./test.py -f 2-query/concat_ws.py -Q 2
python3 ./test.py -f 2-query/concat_ws2.py -Q 2
python3 ./test.py -f 2-query/check_tsdb.py -Q 2
python3 ./test.py -f 2-query/spread.py -Q 2
python3 ./test.py -f 2-query/hyperloglog.py -Q 2
python3 ./test.py -f 2-query/explain.py -Q 2
python3 ./test.py -f 2-query/leastsquares.py -Q 2
python3 ./test.py -f 2-query/timezone.py -Q 2
python3 ./test.py -f 2-query/Now.py -Q 2
python3 ./test.py -f 2-query/Today.py -Q 2
python3 ./test.py -f 2-query/max.py -Q 2
python3 ./test.py -f 2-query/min.py -Q 2
python3 ./test.py -f 2-query/mode.py -Q 2
python3 ./test.py -f 2-query/count.py -Q 2
python3 ./test.py -f 2-query/countAlwaysReturnValue.py -Q 2
python3 ./test.py -f 2-query/last.py -Q 2
python3 ./test.py -f 2-query/first.py -Q 2
python3 ./test.py -f 2-query/To_iso8601.py -Q 2
python3 ./test.py -f 2-query/To_unixtimestamp.py -Q 2
python3 ./test.py -f 2-query/timetruncate.py -Q 2
python3 ./test.py -f 2-query/diff.py -Q 2
python3 ./test.py -f 2-query/Timediff.py -Q 2
python3 ./test.py -f 2-query/json_tag.py -Q 2
python3 ./test.py -f 2-query/top.py -Q 2
python3 ./test.py -f 2-query/bottom.py -Q 2
python3 ./test.py -f 2-query/percentile.py -Q 2
python3 ./test.py -f 2-query/apercentile.py -Q 2
python3 ./test.py -f 2-query/abs.py -Q 2
python3 ./test.py -f 2-query/ceil.py -Q 2
python3 ./test.py -f 2-query/floor.py -Q 2
python3 ./test.py -f 2-query/round.py -Q 2
python3 ./test.py -f 2-query/log.py -Q 2
python3 ./test.py -f 2-query/pow.py -Q 2
python3 ./test.py -f 2-query/sqrt.py -Q 2
python3 ./test.py -f 2-query/sin.py -Q 2
python3 ./test.py -f 2-query/cos.py -Q 2
python3 ./test.py -f 2-query/tan.py -Q 2
python3 ./test.py -f 2-query/arcsin.py -Q 2
python3 ./test.py -f 2-query/arccos.py -Q 2
python3 ./test.py -f 2-query/arctan.py -Q 2
python3 ./test.py -f 2-query/query_cols_tags_and_or.py -Q 2
python3 ./test.py -f 2-query/interp.py -Q 2
python3 ./test.py -f 2-query/nestedQuery.py -Q 2
python3 ./test.py -f 2-query/nestedQueryInterval.py -Q 2
python3 ./test.py -f 2-query/nestedQuery_str.py -Q 2
python3 ./test.py -f 2-query/nestedQuery_math.py -Q 2
python3 ./test.py -f 2-query/nestedQuery_time.py -Q 2
python3 ./test.py -f 2-query/stablity.py -Q 2
python3 ./test.py -f 2-query/stablity_1.py -Q 2
python3 ./test.py -f 2-query/avg.py -Q 2
python3 ./test.py -f 2-query/elapsed.py -Q 2
python3 ./test.py -f 2-query/csum.py -Q 2
python3 ./test.py -f 2-query/mavg.py -Q 2
python3 ./test.py -f 2-query/sample.py -Q 2
python3 ./test.py -f 2-query/function_diff.py -Q 2
python3 ./test.py -f 2-query/unique.py -Q 2
python3 ./test.py -f 2-query/stateduration.py -Q 2
python3 ./test.py -f 2-query/function_stateduration.py -Q 2
python3 ./test.py -f 2-query/statecount.py -Q 2
python3 ./test.py -f 2-query/tail.py -Q 2
python3 ./test.py -f 2-query/ttl_comment.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_count.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_max.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_min.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_sum.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_spread.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_apercentile.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_avg.py -Q 2
python3 ./test.py -f 2-query/distribute_agg_stddev.py -Q 2
python3 ./test.py -f 2-query/twa.py -Q 2
python3 ./test.py -f 2-query/irate.py -Q 2
python3 ./test.py -f 2-query/function_null.py -Q 2
python3 ./test.py -f 2-query/count_partition.py -Q 2
python3 ./test.py -f 2-query/max_partition.py -Q 2
python3 ./test.py -f 2-query/max_min_last_interval.py -Q 2
python3 ./test.py -f 2-query/last_row.py -Q 2
python3 ./test.py -f 2-query/tsbsQuery.py -Q 2
python3 ./test.py -f 2-query/sml.py -Q 2
python3 ./test.py -f 2-query/case_when.py -Q 2
python3 ./test.py -f 2-query/blockSMA.py -Q 2
python3 ./test.py -f 99-TDcase/TD-21561.py -Q 2
python3 ./test.py -f 2-query/between.py -Q 3
python3 ./test.py -f 2-query/distinct.py -Q 3
python3 ./test.py -f 2-query/varchar.py -Q 3
python3 ./test.py -f 2-query/ltrim.py -Q 3
python3 ./test.py -f 2-query/rtrim.py -Q 3
python3 ./test.py -f 2-query/length.py -Q 3
python3 ./test.py -f 2-query/char_length.py -Q 3
python3 ./test.py -f 2-query/upper.py -Q 3
python3 ./test.py -f 2-query/lower.py -Q 3
python3 ./test.py -f 2-query/join.py -Q 3
python3 ./test.py -f 2-query/join2.py -Q 3
python3 ./test.py -f 2-query/cast.py -Q 3
python3 ./test.py -f 2-query/substr.py -Q 3
python3 ./test.py -f 2-query/union.py -Q 3
python3 ./test.py -f 2-query/union1.py -Q 3
python3 ./test.py -f 2-query/concat.py -Q 3
python3 ./test.py -f 2-query/concat2.py -Q 3
python3 ./test.py -f 2-query/concat_ws.py -Q 3
python3 ./test.py -f 2-query/concat_ws2.py -Q 3
python3 ./test.py -f 2-query/check_tsdb.py -Q 3
python3 ./test.py -f 2-query/spread.py -Q 3
python3 ./test.py -f 2-query/hyperloglog.py -Q 3
python3 ./test.py -f 2-query/explain.py -Q 3
python3 ./test.py -f 2-query/leastsquares.py -Q 3
python3 ./test.py -f 2-query/timezone.py -Q 3
python3 ./test.py -f 2-query/Now.py -Q 3
python3 ./test.py -f 2-query/Today.py -Q 3
python3 ./test.py -f 2-query/max.py -Q 3
python3 ./test.py -f 2-query/min.py -Q 3
python3 ./test.py -f 2-query/mode.py -Q 3
python3 ./test.py -f 2-query/count.py -Q 3
python3 ./test.py -f 2-query/countAlwaysReturnValue.py -Q 3
python3 ./test.py -f 2-query/last.py -Q 3
python3 ./test.py -f 2-query/first.py -Q 3
python3 ./test.py -f 2-query/To_iso8601.py -Q 3
python3 ./test.py -f 2-query/To_unixtimestamp.py -Q 3
python3 ./test.py -f 2-query/timetruncate.py -Q 3
python3 ./test.py -f 2-query/diff.py -Q 3
python3 ./test.py -f 2-query/Timediff.py -Q 3
python3 ./test.py -f 2-query/json_tag.py -Q 3
python3 ./test.py -f 2-query/top.py -Q 3
python3 ./test.py -f 2-query/bottom.py -Q 3
python3 ./test.py -f 2-query/percentile.py -Q 3
python3 ./test.py -f 2-query/apercentile.py -Q 3
python3 ./test.py -f 2-query/abs.py -Q 3
python3 ./test.py -f 2-query/ceil.py -Q 3
python3 ./test.py -f 2-query/floor.py -Q 3
python3 ./test.py -f 2-query/round.py -Q 3
python3 ./test.py -f 2-query/log.py -Q 3
python3 ./test.py -f 2-query/pow.py -Q 3
python3 ./test.py -f 2-query/sqrt.py -Q 3
python3 ./test.py -f 2-query/sin.py -Q 3
python3 ./test.py -f 2-query/cos.py -Q 3
python3 ./test.py -f 2-query/tan.py -Q 3
python3 ./test.py -f 2-query/arcsin.py -Q 3
python3 ./test.py -f 2-query/arccos.py -Q 3
python3 ./test.py -f 2-query/arctan.py -Q 3
python3 ./test.py -f 2-query/query_cols_tags_and_or.py -Q 3
python3 ./test.py -f 2-query/nestedQueryInterval.py -Q 3
python3 ./test.py -f 2-query/stablity.py -Q 3
python3 ./test.py -f 2-query/stablity_1.py -Q 3
python3 ./test.py -f 2-query/avg.py -Q 3
python3 ./test.py -f 2-query/elapsed.py -Q 3
python3 ./test.py -f 2-query/csum.py -Q 3
python3 ./test.py -f 2-query/mavg.py -Q 3
python3 ./test.py -f 2-query/sample.py -Q 3
python3 ./test.py -f 2-query/function_diff.py -Q 3
python3 ./test.py -f 2-query/unique.py -Q 3
python3 ./test.py -f 2-query/stateduration.py -Q 3
python3 ./test.py -f 2-query/function_stateduration.py -Q 3
python3 ./test.py -f 2-query/statecount.py -Q 3
python3 ./test.py -f 2-query/tail.py -Q 3
python3 ./test.py -f 2-query/ttl_comment.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_count.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_max.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_min.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_sum.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_spread.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_apercentile.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_avg.py -Q 3
python3 ./test.py -f 2-query/distribute_agg_stddev.py -Q 3
python3 ./test.py -f 2-query/twa.py -Q 3
python3 ./test.py -f 2-query/irate.py -Q 3
python3 ./test.py -f 2-query/function_null.py -Q 3
python3 ./test.py -f 2-query/count_partition.py -Q 3
python3 ./test.py -f 2-query/max_partition.py -Q 3
python3 ./test.py -f 2-query/max_min_last_interval.py -Q 3
python3 ./test.py -f 2-query/last_row.py -Q 3
python3 ./test.py -f 2-query/tsbsQuery.py -Q 3
python3 ./test.py -f 2-query/sml.py -Q 3
python3 ./test.py -f 2-query/interp.py -Q 3
python3 ./test.py -f 2-query/case_when.py -Q 3
python3 ./test.py -f 2-query/blockSMA.py -Q 3
python3 ./test.py -f 99-TDcase/TD-21561.py -Q 3
python3 ./test.py -f 2-query/between.py -Q 4
python3 ./test.py -f 2-query/distinct.py -Q 4
python3 ./test.py -f 2-query/varchar.py -Q 4
python3 ./test.py -f 2-query/ltrim.py -Q 4
python3 ./test.py -f 2-query/rtrim.py -Q 4
python3 ./test.py -f 2-query/length.py -Q 4
python3 ./test.py -f 2-query/char_length.py -Q 4
python3 ./test.py -f 2-query/upper.py -Q 4
python3 ./test.py -f 2-query/lower.py -Q 4
python3 ./test.py -f 2-query/join.py -Q 4
python3 ./test.py -f 2-query/join2.py -Q 4
python3 ./test.py -f 2-query/substr.py -Q 4
python3 ./test.py -f 2-query/union.py -Q 4
python3 ./test.py -f 2-query/union1.py -Q 4
python3 ./test.py -f 2-query/concat.py -Q 4
python3 ./test.py -f 2-query/concat2.py -Q 4
python3 ./test.py -f 2-query/concat_ws.py -Q 4
python3 ./test.py -f 2-query/concat_ws2.py -Q 4
python3 ./test.py -f 2-query/check_tsdb.py -Q 4
python3 ./test.py -f 2-query/spread.py -Q 4
python3 ./test.py -f 2-query/hyperloglog.py -Q 4
python3 ./test.py -f 2-query/explain.py -Q 4
python3 ./test.py -f 2-query/leastsquares.py -Q 4
python3 ./test.py -f 2-query/timezone.py -Q 4
python3 ./test.py -f 2-query/Now.py -Q 4
python3 ./test.py -f 2-query/Today.py -Q 4
python3 ./test.py -f 2-query/max.py -Q 4
python3 ./test.py -f 2-query/min.py -Q 4
python3 ./test.py -f 2-query/mode.py -Q 4
python3 ./test.py -f 2-query/count.py -Q 4
python3 ./test.py -f 2-query/countAlwaysReturnValue.py -Q 4
python3 ./test.py -f 2-query/last.py -Q 4
python3 ./test.py -f 2-query/first.py -Q 4
python3 ./test.py -f 2-query/To_iso8601.py -Q 4
python3 ./test.py -f 2-query/To_unixtimestamp.py -Q 4
python3 ./test.py -f 2-query/timetruncate.py -Q 4
python3 ./test.py -f 2-query/diff.py -Q 4
python3 ./test.py -f 2-query/Timediff.py -Q 4
python3 ./test.py -f 2-query/top.py -Q 4
python3 ./test.py -f 2-query/bottom.py -Q 4
python3 ./test.py -f 2-query/percentile.py -Q 4
python3 ./test.py -f 2-query/apercentile.py -Q 4
python3 ./test.py -f 2-query/abs.py -Q 4
python3 ./test.py -f 2-query/ceil.py -Q 4
python3 ./test.py -f 2-query/floor.py -Q 4
python3 ./test.py -f 2-query/round.py -Q 4
python3 ./test.py -f 2-query/log.py -Q 4
python3 ./test.py -f 2-query/pow.py -Q 4
python3 ./test.py -f 2-query/sqrt.py -Q 4
python3 ./test.py -f 2-query/sin.py -Q 4
python3 ./test.py -f 2-query/cos.py -Q 4
python3 ./test.py -f 2-query/tan.py -Q 4
python3 ./test.py -f 2-query/arcsin.py -Q 4
python3 ./test.py -f 2-query/arccos.py -Q 4
python3 ./test.py -f 2-query/arctan.py -Q 4
python3 ./test.py -f 2-query/query_cols_tags_and_or.py -Q 4
python3 ./test.py -f 2-query/nestedQuery.py -Q 4
python3 ./test.py -f 2-query/nestedQueryInterval.py -Q 4
python3 ./test.py -f 2-query/nestedQuery_str.py -Q 4
python3 ./test.py -f 2-query/nestedQuery_math.py -Q 4
python3 ./test.py -f 2-query/nestedQuery_time.py -Q 4
python3 ./test.py -f 2-query/avg.py -Q 4
python3 ./test.py -f 2-query/elapsed.py -Q 4
python3 ./test.py -f 2-query/csum.py -Q 4
python3 ./test.py -f 2-query/mavg.py -Q 4
python3 ./test.py -f 2-query/sample.py -Q 4
python3 ./test.py -f 2-query/cast.py -Q 4
python3 ./test.py -f 2-query/function_diff.py -Q 4
python3 ./test.py -f 2-query/unique.py -Q 4
python3 ./test.py -f 2-query/tail.py -Q 4
python3 ./test.py -f 2-query/ttl_comment.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_count.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_max.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_min.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_sum.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_spread.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_apercentile.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_avg.py -Q 4
python3 ./test.py -f 2-query/distribute_agg_stddev.py -Q 4
python3 ./test.py -f 2-query/twa.py -Q 4
python3 ./test.py -f 2-query/irate.py -Q 4
python3 ./test.py -f 2-query/function_null.py -Q 4
python3 ./test.py -f 2-query/count_partition.py -Q 4
python3 ./test.py -f 2-query/max_partition.py -Q 4
python3 ./test.py -f 2-query/max_min_last_interval.py -Q 4
python3 ./test.py -f 2-query/last_row.py -Q 4
python3 ./test.py -f 2-query/tsbsQuery.py -Q 4
python3 ./test.py -f 2-query/sml.py -Q 4
python3 ./test.py -f 2-query/interp.py -Q 4
python3 ./test.py -f 2-query/case_when.py -Q 4
python3 ./test.py -f 2-query/insert_select.py
python3 ./test.py -f 2-query/insert_select.py -R
python3 ./test.py -f 2-query/insert_select.py -Q 2
python3 ./test.py -f 2-query/insert_select.py -Q 3
python3 ./test.py -f 2-query/insert_select.py -Q 4
python3 ./test.py -f 2-query/insert_null_none.py
python3 ./test.py -f 2-query/insert_null_none.py -R
python3 ./test.py -f 2-query/insert_null_none.py -Q 2
python3 ./test.py -f 2-query/insert_null_none.py -Q 3
python3 ./test.py -f 2-query/insert_null_none.py -Q 4
python3 ./test.py -f 2-query/out_of_order.py
python3 ./test.py -f 2-query/out_of_order.py -R
python3 ./test.py -f 2-query/out_of_order.py -Q 2
python3 ./test.py -f 2-query/out_of_order.py -Q 3
python3 ./test.py -f 2-query/out_of_order.py -Q 4
python3 ./test.py -f 2-query/max_min_data.py
python3 ./test.py -f 2-query/max_min_data.py -R
python3 ./test.py -f 2-query/max_min_data.py -Q 2
python3 ./test.py -f 2-query/max_min_data.py -Q 3
python3 ./test.py -f 2-query/max_min_data.py -Q 4
python3 ./test.py -f 2-query/blockSMA.py -Q 4
python3 ./test.py -f 2-query/odbc.py
python3 ./test.py -f 99-TDcase/TD-21561.py -Q 4
python3 ./test.py -f 99-TDcase/TD-20582.py

View File

@ -0,0 +1 @@
bash test.sh

View File

@ -37,15 +37,15 @@ void simLogSql(char *sql, bool useSharp) {
char *simParseHostName(char *varName) { char *simParseHostName(char *varName) {
static char hostName[140]; static char hostName[140];
#ifdef WINDOWS //#ifdef WINDOWS
hostName[0] = '\"'; // hostName[0] = '\"';
taosGetFqdn(&hostName[1]); // taosGetFqdn(&hostName[1]);
int strEndIndex = strlen(hostName); // int strEndIndex = strlen(hostName);
hostName[strEndIndex] = '\"'; // hostName[strEndIndex] = '\"';
hostName[strEndIndex + 1] = '\0'; // hostName[strEndIndex + 1] = '\0';
#else //#else
sprintf(hostName, "%s", "localhost"); sprintf(hostName, "%s", "localhost");
#endif //#endif
return hostName; return hostName;
} }
@ -376,6 +376,20 @@ bool simExecuteRunBackCmd(SScript *script, char *option) {
return true; return true;
} }
void simReplaceDirSep (char *buf){
#ifdef WINDOWS
int i=0;
while(buf[i] != '\0')
{
if(buf[i] == '/')
{
buf[i] = '\\';
}
i++;
}
#endif
}
bool simReplaceStr(char *buf, char *src, char *dst) { bool simReplaceStr(char *buf, char *src, char *dst) {
bool replaced = false; bool replaced = false;
char *begin = strstr(buf, src); char *begin = strstr(buf, src);
@ -407,9 +421,10 @@ bool simExecuteSystemCmd(SScript *script, char *option) {
sprintf(buf, "cd %s; ", simScriptDir); sprintf(buf, "cd %s; ", simScriptDir);
simVisuallizeOption(script, option, buf + strlen(buf)); simVisuallizeOption(script, option, buf + strlen(buf));
#else #else
sprintf(buf, "%s", simScriptDir); sprintf(buf, "cd %s && ", simScriptDir);
simVisuallizeOption(script, option, buf + strlen(buf)); simVisuallizeOption(script, option, buf + strlen(buf));
simReplaceStr(buf, ".sh", ".bat"); simReplaceStr(buf, ".sh", ".bat");
simReplaceDirSep(buf);
#endif #endif
if (useValgrind) { if (useValgrind) {
@ -471,6 +486,8 @@ bool simExecuteSystemContentCmd(SScript *script, char *option) {
#ifdef WINDOWS #ifdef WINDOWS
sprintf(buf, "cd %s && ", simScriptDir); sprintf(buf, "cd %s && ", simScriptDir);
simVisuallizeOption(script, option, buf + strlen(buf)); simVisuallizeOption(script, option, buf + strlen(buf));
simReplaceStr(buf, ".sh", ".bat");
simReplaceDirSep(buf);
sprintf(buf1, "%s > %s 2>nul", buf, filename); sprintf(buf1, "%s > %s 2>nul", buf, filename);
#else #else
sprintf(buf, "cd %s; ", simScriptDir); sprintf(buf, "cd %s; ", simScriptDir);