Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yiicenne
TDengine
提交
114aef8e
TDengine
项目概览
yiicenne
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
114aef8e
编写于
12月 01, 2020
作者:
S
Shuduo Sang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-2295] feature: add test case to support hivemq extension.
上级
71afc90b
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
166 addition
and
0 deletion
+166
-0
tests/pytest/hivemq-extension-test.py
tests/pytest/hivemq-extension-test.py
+166
-0
未找到文件。
tests/pytest/hivemq-extension-test.py
0 → 100644
浏览文件 @
114aef8e
#!/usr/bin/python
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# install pip
# pip install src/connector/python/linux/python2/
import
sys
import
os
import
os.path
import
time
import
glob
import
getopt
import
subprocess
from
shutil
import
which
from
multipledispatch
import
dispatch
@
dispatch
(
str
,
str
)
def
v_print
(
msg
:
str
,
arg
:
str
):
if
verbose
:
print
(
msg
%
arg
)
@
dispatch
(
str
,
int
)
def
v_print
(
msg
:
str
,
arg
:
int
):
if
verbose
:
print
(
msg
%
int
(
arg
))
@
dispatch
(
str
,
int
,
int
)
def
v_print
(
msg
:
str
,
arg1
:
int
,
arg2
:
int
):
if
verbose
:
print
(
msg
%
(
int
(
arg1
),
int
(
arg2
)))
@
dispatch
(
str
,
int
,
int
,
int
)
def
v_print
(
msg
:
str
,
arg1
:
int
,
arg2
:
int
,
arg3
:
int
):
if
verbose
:
print
(
msg
%
(
int
(
arg1
),
int
(
arg2
),
int
(
arg3
)))
@
dispatch
(
str
,
int
,
int
,
int
,
int
)
def
v_print
(
msg
:
str
,
arg1
:
int
,
arg2
:
int
,
arg3
:
int
,
arg4
:
int
):
if
verbose
:
print
(
msg
%
(
int
(
arg1
),
int
(
arg2
),
int
(
arg3
),
int
(
arg4
)))
def
isHiveMQInstalled
():
v_print
(
"%s"
,
"Check if HiveMQ installed"
)
defaultHiveMQPath
=
"/opt/hivemq*"
hiveMQDir
=
glob
.
glob
(
defaultHiveMQPath
)
if
(
len
(
hiveMQDir
)
==
0
):
return
False
else
:
v_print
(
"HiveMQ installed at %s"
,
hiveMQDir
[
0
])
return
True
def
isMosquittoInstalled
():
v_print
(
"%s"
,
"Check if mosquitto installed"
)
if
not
which
(
'mosquitto_pub'
):
v_print
(
"%s"
,
"mosquitto is not installed"
)
return
False
else
:
return
True
def
installExtension
():
currentDir
=
os
.
getcwd
()
os
.
chdir
(
'../../src/connector/hivemq-tdengine-extension'
)
v_print
(
"%s"
,
"build extension.."
)
os
.
system
(
'mvn clean package'
)
tdExtensionZip
=
'target/hivemq-tdengine-extension*.zip'
tdExtensionZipDir
=
glob
.
glob
(
tdExtensionZip
)
defaultHiveMQPath
=
"/opt/hivemq*"
hiveMQDir
=
glob
.
glob
(
defaultHiveMQPath
)
extPath
=
hiveMQDir
[
0
]
+
'/extensions'
tdExtDir
=
glob
.
glob
(
extPath
+
'/hivemq-tdengine-extension'
)
if
len
(
tdExtDir
):
v_print
(
"%s"
,
"delete exist extension.."
)
os
.
system
(
'rm -rf %s'
%
tdExtDir
[
0
])
v_print
(
"%s"
,
"unzip extension.."
)
os
.
system
(
'unzip %s -d %s'
%
(
tdExtensionZipDir
[
0
],
extPath
))
os
.
chdir
(
currentDir
)
def
stopHiveMQ
():
toBeKilled
=
"hivemq.jar"
psCmd
=
"ps ax|grep -w %s| grep -v grep | awk '{print $1}'"
%
toBeKilled
processID
=
subprocess
.
check_output
(
psCmd
,
shell
=
True
).
decode
(
"utf-8"
)
while
(
processID
):
killCmd
=
"kill -TERM %s > /dev/null 2>&1"
%
processID
os
.
system
(
killCmd
)
time
.
sleep
(
1
)
processID
=
subprocess
.
check_output
(
psCmd
,
shell
=
True
).
decode
(
"utf-8"
)
print
(
"hiveMQ processID: %s"
%
processID
)
v_print
(
"%s"
,
"hivemq is NOT running"
)
def
runHiveMQ
():
defaultHiveMQPath
=
"/opt/hivemq*"
hiveMQDir
=
glob
.
glob
(
defaultHiveMQPath
)
runPath
=
hiveMQDir
[
0
]
+
'/bin/run.sh > /dev/null &'
os
.
system
(
runPath
)
time
.
sleep
(
10
)
v_print
(
"%s"
,
"hivemq is running"
)
def
runTDengine
():
pass
def
reCreateDatabase
():
os
.
system
(
'taos -s "DROP DATABASE IF EXISTS hivemq"'
)
os
.
system
(
'taos -s "CREATE DATABASE IF NOT EXISTS hivemq"'
)
def
sendMqttMsg
(
topic
:
str
,
payload
:
str
):
testStr
=
'mosquitto_pub -t %s -m "%s"'
%
(
topic
,
payload
)
os
.
system
(
testStr
)
time
.
sleep
(
3
)
def
checkTDengineData
(
topic
:
str
,
payload
:
str
):
output
=
subprocess
.
check_output
(
'taos -s "select * from hivemq.mqtt_payload"'
,
shell
=
True
).
decode
(
'utf-8'
)
if
(
topic
in
output
)
and
(
payload
in
output
):
v_print
(
"%s"
,
output
)
return
True
else
:
v_print
(
"%s"
,
"ERROR: mqtt topic or payload NOT found"
)
return
False
if
__name__
==
"__main__"
:
verbose
=
True
testTopic
=
'test'
testPayload
=
'hello world'
if
not
isHiveMQInstalled
():
sys
.
exit
(
1
)
if
not
isMosquittoInstalled
():
sys
.
exit
(
1
)
stopHiveMQ
()
installExtension
()
runTDengine
()
reCreateDatabase
()
runHiveMQ
()
sendMqttMsg
(
testTopic
,
testPayload
)
if
not
checkTDengineData
(
testTopic
,
testPayload
):
sys
.
exit
(
1
)
sys
.
exit
(
0
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录