[TD-6169]<fix>: windows dll client can not quit.
This commit is contained in:
parent
97a3aeeb43
commit
613bd5c523
|
@ -199,10 +199,7 @@ void taos_init_imp(void) {
|
||||||
|
|
||||||
// In the APIs of other program language, taos_cleanup is not available yet.
|
// In the APIs of other program language, taos_cleanup is not available yet.
|
||||||
// So, to make sure taos_cleanup will be invoked to clean up the allocated resource to suppress the valgrind warning.
|
// So, to make sure taos_cleanup will be invoked to clean up the allocated resource to suppress the valgrind warning.
|
||||||
// But in the dll, the child thread will be killed before atexit takes effect.So taos_cleanup is not necessary.
|
|
||||||
#if !defined(TD_WINDOWS)
|
|
||||||
atexit(taos_cleanup);
|
atexit(taos_cleanup);
|
||||||
#endif
|
|
||||||
|
|
||||||
tscDebug("client is initialized successfully");
|
tscDebug("client is initialized successfully");
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import ctypes
|
import ctypes
|
||||||
import platform
|
import platform
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
from ctypes import *
|
from ctypes import *
|
||||||
try:
|
try:
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
@ -37,7 +38,11 @@ def _load_taos_darwin():
|
||||||
|
|
||||||
|
|
||||||
def _load_taos_windows():
|
def _load_taos_windows():
|
||||||
return ctypes.windll.LoadLibrary("taos")
|
if os.path.exists("c:\\Windows\\System32\\taos.dll"):
|
||||||
|
return ctypes.windll.LoadLibrary("taos")
|
||||||
|
else:
|
||||||
|
print("Please copy the \"C:\\TDengine\\driver\\taos.dll\" file to the \"C:\\windows\\system32\" directory.")
|
||||||
|
return ctypes.windll.LoadLibrary("C:\\TDengine\\driver\\taos.dll")
|
||||||
|
|
||||||
|
|
||||||
def _load_taos():
|
def _load_taos():
|
||||||
|
|
|
@ -368,7 +368,7 @@ int32_t taosFsync(FileFd fd) {
|
||||||
|
|
||||||
HANDLE h = (HANDLE)_get_osfhandle(fd);
|
HANDLE h = (HANDLE)_get_osfhandle(fd);
|
||||||
|
|
||||||
return FlushFileBuffers(h);
|
return !FlushFileBuffers(h);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosRename(char *oldName, char *newName) {
|
int32_t taosRename(char *oldName, char *newName) {
|
||||||
|
|
|
@ -537,7 +537,9 @@ void taosCacheCleanup(SCacheObj *pCacheObj) {
|
||||||
pCacheObj->deleting = 1;
|
pCacheObj->deleting = 1;
|
||||||
|
|
||||||
// wait for the refresh thread quit before destroying the cache object.
|
// wait for the refresh thread quit before destroying the cache object.
|
||||||
while(atomic_load_8(&pCacheObj->deleting) != 0) {
|
// But in the dll, the child thread will be killed before atexit takes effect.So here we only wait for one second.
|
||||||
|
while(atomic_load_8(&pCacheObj->deleting)) {
|
||||||
|
// for (int i = 0; i < 60&&atomic_load_8(&pCacheObj->deleting) != 0; i++) {
|
||||||
taosMsleep(50);
|
taosMsleep(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,12 @@
|
||||||
> before the script line. Then you can look for the core file in
|
> before the script line. Then you can look for the core file in
|
||||||
> \<TDengine\>/tests/pytest after the program crash.
|
> \<TDengine\>/tests/pytest after the program crash.
|
||||||
|
|
||||||
|
> Note3: if you are on the windows platform, you can install the git client,
|
||||||
|
> and then add %GitPath%\usr\bin;%GitPath%\mingw64\bin;%GitPath%\bin to the system
|
||||||
|
> environment variable Path. Note that %GitPath% is the installation path of git,
|
||||||
|
> such as C:\Program Files\Git. Then you can run the test script using the
|
||||||
|
> "sh smoketest.sh" command.
|
||||||
|
|
||||||
|
|
||||||
### How to add a new test case
|
### How to add a new test case
|
||||||
|
|
||||||
|
|
|
@ -92,13 +92,13 @@ class Node:
|
||||||
self.conn.run("yes|./install.sh")
|
self.conn.run("yes|./install.sh")
|
||||||
|
|
||||||
def configTaosd(self, taosConfigKey, taosConfigValue):
|
def configTaosd(self, taosConfigKey, taosConfigValue):
|
||||||
self.conn.run("sudo echo '%s %s' >> %s" % (taosConfigKey, taosConfigValue, "/etc/taos/taos.cfg"))
|
self.conn.run("sudo echo %s %s >> %s" % (taosConfigKey, taosConfigValue, "/etc/taos/taos.cfg"))
|
||||||
|
|
||||||
def removeTaosConfig(self, taosConfigKey, taosConfigValue):
|
def removeTaosConfig(self, taosConfigKey, taosConfigValue):
|
||||||
self.conn.run("sudo sed -in-place -e '/%s %s/d' %s" % (taosConfigKey, taosConfigValue, "/etc/taos/taos.cfg"))
|
self.conn.run("sudo sed -in-place -e '/%s %s/d' %s" % (taosConfigKey, taosConfigValue, "/etc/taos/taos.cfg"))
|
||||||
|
|
||||||
def configHosts(self, ip, name):
|
def configHosts(self, ip, name):
|
||||||
self.conn.run("echo '%s %s' >> %s" % (ip, name, '/etc/hosts'))
|
self.conn.run("echo %s %s >> %s" % (ip, name, '/etc/hosts'))
|
||||||
|
|
||||||
def removeData(self):
|
def removeData(self):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -113,7 +113,7 @@ class BuildDockerCluser:
|
||||||
|
|
||||||
def cfg(self, option, value, nodeIndex):
|
def cfg(self, option, value, nodeIndex):
|
||||||
cfgPath = "%s/node%d/cfg/taos.cfg" % (self.dockerDir, nodeIndex)
|
cfgPath = "%s/node%d/cfg/taos.cfg" % (self.dockerDir, nodeIndex)
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, cfgPath)
|
||||||
self.execCmd(cmd)
|
self.execCmd(cmd)
|
||||||
|
|
||||||
def updateLocalhosts(self):
|
def updateLocalhosts(self):
|
||||||
|
@ -122,7 +122,7 @@ class BuildDockerCluser:
|
||||||
print(result)
|
print(result)
|
||||||
if result is None or result.isspace():
|
if result is None or result.isspace():
|
||||||
print("==========")
|
print("==========")
|
||||||
cmd = "echo '172.27.0.7 tdnode1' >> /etc/hosts"
|
cmd = "echo 172.27.0.7 tdnode1 >> /etc/hosts"
|
||||||
display = "echo %s" % cmd
|
display = "echo %s" % cmd
|
||||||
self.execCmd(display)
|
self.execCmd(display)
|
||||||
self.execCmd(cmd)
|
self.execCmd(cmd)
|
||||||
|
|
|
@ -53,8 +53,9 @@ class TDTestCase:
|
||||||
tdLog.info("tdSql.checkData(0, 0, '34567')")
|
tdLog.info("tdSql.checkData(0, 0, '34567')")
|
||||||
tdSql.checkData(0, 0, '34567')
|
tdSql.checkData(0, 0, '34567')
|
||||||
tdLog.info("insert into tb values (now+4a, \"'';\")")
|
tdLog.info("insert into tb values (now+4a, \"'';\")")
|
||||||
config_dir = subprocess.check_output(str("ps -ef |grep dnode1|grep -v grep |awk '{print $NF}'"), stderr=subprocess.STDOUT, shell=True).decode('utf-8').replace('\n', '')
|
# config_dir = subprocess.check_output(str("ps -ef |grep dnode1|grep -v grep |awk '{print $NF}'"), stderr=subprocess.STDOUT, shell=True).decode('utf-8').replace('\n', '')
|
||||||
result = ''.join(os.popen(r"""taos -s "insert into db.tb values (now+4a, \"'';\")" -c %s"""%(config_dir)).readlines())
|
# result = ''.join(os.popen(r"""taos -s "insert into db.tb values (now+4a, \"'';\")" -c %s"""%(config_dir)).readlines())
|
||||||
|
result = ''.join(os.popen(r"""taos -s "insert into db.tb values (now+4a, \"'';\")" -c %s"""%(tdSql.cursor._connection._config)).readlines())
|
||||||
if "Query OK" not in result: tdLog.exit("err:insert '';")
|
if "Query OK" not in result: tdLog.exit("err:insert '';")
|
||||||
tdLog.info('drop database db')
|
tdLog.info('drop database db')
|
||||||
tdSql.execute('drop database db')
|
tdSql.execute('drop database db')
|
||||||
|
|
|
@ -34,7 +34,8 @@ class TDTestCase:
|
||||||
path = tdDnodes.dnodes[1].getDnodeRootDir(1)
|
path = tdDnodes.dnodes[1].getDnodeRootDir(1)
|
||||||
print(path)
|
print(path)
|
||||||
tdLog.info("sudo mkdir -p %s/data/vnode/vnode2/wal/old" % path)
|
tdLog.info("sudo mkdir -p %s/data/vnode/vnode2/wal/old" % path)
|
||||||
os.system("sudo mkdir -p %s/data/vnode/vnode2/wal/old" % path)
|
# os.system("sudo mkdir -p %s/data/vnode/vnode2/wal/old" % path)
|
||||||
|
os.makedirs("%s/data/vnode/vnode2/wal/old" % path, exist_ok=True) # like "mkdir -p"
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
# os.system("rm -rf %s/ " % tdDnodes.getDnodesRootDir())
|
# os.system("rm -rf %s/ " % tdDnodes.getDnodesRootDir())
|
||||||
|
|
|
@ -55,7 +55,7 @@ if __name__ == "__main__":
|
||||||
restart = True
|
restart = True
|
||||||
|
|
||||||
if key in ['-f', '--file']:
|
if key in ['-f', '--file']:
|
||||||
fileName = value
|
fileName = value.replace('\r', "")
|
||||||
|
|
||||||
if key in ['-p', '--path']:
|
if key in ['-p', '--path']:
|
||||||
deployPath = value
|
deployPath = value
|
||||||
|
|
|
@ -60,7 +60,7 @@ class TDSimClient:
|
||||||
self.cfgDict.update({option: value})
|
self.cfgDict.update({option: value})
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
@ -73,17 +73,19 @@ class TDSimClient:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "rm -rf " + self.cfgDir
|
cmd = "rm -rf " + self.cfgDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -149,17 +151,20 @@ class TDDnode:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.dataDir
|
os.makedirs(self.dataDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.dataDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -320,7 +325,7 @@ class TDDnode:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ class TDSimClient:
|
||||||
self.cfgDict.update({option: value})
|
self.cfgDict.update({option: value})
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
@ -71,17 +71,19 @@ class TDSimClient:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "rm -rf " + self.cfgDir
|
cmd = "rm -rf " + self.cfgDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -147,17 +149,20 @@ class TDDnode:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.dataDir
|
os.makedirs(self.dataDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.dataDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -318,7 +323,7 @@ class TDDnode:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ class TDSimClient:
|
||||||
self.cfgDict.update({option: value})
|
self.cfgDict.update({option: value})
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
@ -71,17 +71,19 @@ class TDSimClient:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "rm -rf " + self.cfgDir
|
cmd = "rm -rf " + self.cfgDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -147,17 +149,20 @@ class TDDnode:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.dataDir
|
os.makedirs(self.dataDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.dataDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -318,7 +323,7 @@ class TDDnode:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
import platform
|
||||||
import subprocess
|
import subprocess
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from util.log import *
|
from util.log import *
|
||||||
|
@ -61,7 +62,7 @@ class TDSimClient:
|
||||||
self.cfgDict.update({option: value})
|
self.cfgDict.update({option: value})
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
@ -74,17 +75,19 @@ class TDSimClient:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "rm -rf " + self.cfgDir
|
cmd = "rm -rf " + self.cfgDir
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -185,17 +188,20 @@ class TDDnode:
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.dataDir
|
os.makedirs(self.dataDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.dataDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.logDir
|
os.makedirs(self.logDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.logDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "mkdir -p " + self.cfgDir
|
os.makedirs(self.cfgDir, exist_ok=True) # like "mkdir -p"
|
||||||
if os.system(cmd) != 0:
|
# cmd = "mkdir -p " + self.cfgDir
|
||||||
tdLog.exit(cmd)
|
# if os.system(cmd) != 0:
|
||||||
|
# tdLog.exit(cmd)
|
||||||
|
|
||||||
cmd = "touch " + self.cfgPath
|
cmd = "touch " + self.cfgPath
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
|
@ -246,7 +252,7 @@ class TDDnode:
|
||||||
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):
|
if (("taosd.exe") in files) or (("taosd") 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")]
|
||||||
|
@ -267,7 +273,11 @@ 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:
|
||||||
cmd = "nohup %s -c %s > /dev/null 2>&1 & " % (
|
if platform.system()=="Windows":
|
||||||
|
cmd = "mintty %s -c %s" % (
|
||||||
|
binPath, self.cfgDir)
|
||||||
|
else:
|
||||||
|
cmd = "nohup %s -c %s > /dev/null 2>&1 & " % (
|
||||||
binPath, self.cfgDir)
|
binPath, self.cfgDir)
|
||||||
else:
|
else:
|
||||||
valgrindCmdline = "valgrind --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes"
|
valgrindCmdline = "valgrind --tool=memcheck --leak-check=full --show-reachable=no --track-origins=yes --show-leak-kinds=all -v --workaround-gcc296-bugs=yes"
|
||||||
|
@ -292,7 +302,7 @@ class TDDnode:
|
||||||
i += 1
|
i += 1
|
||||||
if i>50:
|
if i>50:
|
||||||
break
|
break
|
||||||
popen = subprocess.Popen('tail -f ' + logFile, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
popen = subprocess.Popen('tail -f -n +0 ' + logFile, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
|
||||||
pid = popen.pid
|
pid = popen.pid
|
||||||
# print('Popen.pid:' + str(pid))
|
# print('Popen.pid:' + str(pid))
|
||||||
timeout = time.time() + 60*2
|
timeout = time.time() + 60*2
|
||||||
|
@ -404,7 +414,7 @@ class TDDnode:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
def cfg(self, option, value):
|
def cfg(self, option, value):
|
||||||
cmd = "echo '%s %s' >> %s" % (option, value, self.cfgPath)
|
cmd = "echo %s %s >> %s" % (option, value, self.cfgPath)
|
||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
tdLog.exit(cmd)
|
tdLog.exit(cmd)
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ class TDTestCase:
|
||||||
|
|
||||||
def createOldDirAndAddWal(self):
|
def createOldDirAndAddWal(self):
|
||||||
oldDir = tdDnodes.getDnodesRootDir() + "dnode1/data/vnode/vnode2/wal/old"
|
oldDir = tdDnodes.getDnodesRootDir() + "dnode1/data/vnode/vnode2/wal/old"
|
||||||
os.system("sudo echo 'test' >> %s/wal" % oldDir)
|
os.system("sudo echo test >> %s/wal" % oldDir)
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
Loading…
Reference in New Issue