Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
冷面1992
TDengine
提交
00d6bb39
TDengine
项目概览
冷面1992
/
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,发现更多精彩内容 >>
未验证
提交
00d6bb39
编写于
3月 05, 2021
作者:
H
huili
提交者:
GitHub
3月 05, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5350 from taosdata/xiaoping/add_test_case
[TD-3155]<test>: add test case
上级
09661baf
494abf09
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
105 addition
and
101 deletion
+105
-101
Jenkinsfile
Jenkinsfile
+2
-0
tests/Jenkinsfile
tests/Jenkinsfile
+6
-0
tests/pytest/cluster/clusterSetup.py
tests/pytest/cluster/clusterSetup.py
+52
-94
tests/pytest/insert/metadataUpdate.py
tests/pytest/insert/metadataUpdate.py
+2
-1
tests/test-all.sh
tests/test-all.sh
+43
-6
未找到文件。
Jenkinsfile
浏览文件 @
00d6bb39
...
@@ -227,6 +227,8 @@ pipeline {
...
@@ -227,6 +227,8 @@ pipeline {
./test-all.sh p4
./test-all.sh p4
cd ${WKC}/tests
cd ${WKC}/tests
./test-all.sh full jdbc
./test-all.sh full jdbc
cd ${WKC}/tests
./test-all.sh full unit
date'''
date'''
}
}
}
}
...
...
tests/Jenkinsfile
浏览文件 @
00d6bb39
...
@@ -55,9 +55,15 @@ pipeline {
...
@@ -55,9 +55,15 @@ pipeline {
sh
'''
sh
'''
cd ${WKC}/tests
cd ${WKC}/tests
./test-all.sh b1
./test-all.sh b1
date'''
sh
'''
cd ${WKC}/tests
cd ${WKC}/tests
./test-all.sh full jdbc
./test-all.sh full jdbc
date'''
date'''
sh
'''
cd ${WKC}/tests
./test-all.sh full unit
date'''
}
}
}
}
...
...
tests/pytest/cluster/clusterSetup.py
浏览文件 @
00d6bb39
...
@@ -11,15 +11,9 @@
...
@@ -11,15 +11,9 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import
os
import
sys
sys
.
path
.
insert
(
0
,
os
.
getcwd
())
from
fabric
import
Connection
from
fabric
import
Connection
from
util.sql
import
*
from
util.log
import
*
import
taos
import
random
import
random
import
t
hreading
import
t
ime
import
logging
import
logging
class
Node
:
class
Node
:
...
@@ -76,6 +70,19 @@ class Node:
...
@@ -76,6 +70,19 @@ class Node:
print
(
"remove taosd error for node %d "
%
self
.
index
)
print
(
"remove taosd error for node %d "
%
self
.
index
)
logging
.
exception
(
e
)
logging
.
exception
(
e
)
def
forceStopOneTaosd
(
self
):
try
:
self
.
conn
.
run
(
"kill -9 $(ps -ax|grep taosd|awk '{print $1}')"
)
except
Exception
as
e
:
print
(
"kill taosd error on node%d "
%
self
.
index
)
def
startOneTaosd
(
self
):
try
:
self
.
conn
.
run
(
"nohup taosd -c /etc/taos/ > /dev/null 2>&1 &"
)
except
Exception
as
e
:
print
(
"start taosd error on node%d "
%
self
.
index
)
logging
.
exception
(
e
)
def
installTaosd
(
self
,
packagePath
):
def
installTaosd
(
self
,
packagePath
):
self
.
conn
.
put
(
packagePath
,
self
.
homeDir
)
self
.
conn
.
put
(
packagePath
,
self
.
homeDir
)
self
.
conn
.
cd
(
self
.
homeDir
)
self
.
conn
.
cd
(
self
.
homeDir
)
...
@@ -122,100 +129,51 @@ class Node:
...
@@ -122,100 +129,51 @@ class Node:
class
Nodes
:
class
Nodes
:
def
__init__
(
self
):
def
__init__
(
self
):
self
.
node1
=
Node
(
1
,
'root'
,
'52.151.60.239'
,
'node1'
,
'r'
,
'/root/'
)
self
.
tdnodes
=
[]
self
.
node2
=
Node
(
2
,
'root'
,
'52.183.32.246'
,
'node1'
,
'r'
,
'/root/'
)
self
.
tdnodes
.
append
(
Node
(
0
,
'root'
,
'52.143.103.7'
,
'node1'
,
'a'
,
'/root/'
))
self
.
node3
=
Node
(
3
,
'root'
,
'51.143.46.79'
,
'node1'
,
'r'
,
'/root/'
)
self
.
tdnodes
.
append
(
Node
(
1
,
'root'
,
'52.250.48.222'
,
'node2'
,
'a'
,
'/root/'
))
self
.
node4
=
Node
(
4
,
'root'
,
'52.183.2.76'
,
'node1'
,
'r'
,
'/root/'
)
self
.
tdnodes
.
append
(
Node
(
2
,
'root'
,
'51.141.167.23'
,
'node3'
,
'a'
,
'/root/'
))
self
.
node5
=
Node
(
5
,
'root'
,
'13.66.225.87'
,
'node1'
,
'r'
,
'/root/'
)
self
.
tdnodes
.
append
(
Node
(
3
,
'root'
,
'52.247.207.173'
,
'node4'
,
'a'
,
'/root/'
))
self
.
tdnodes
.
append
(
Node
(
4
,
'root'
,
'51.141.166.100'
,
'node5'
,
'a'
,
'/root/'
))
def
stopOneNode
(
self
,
index
):
self
.
tdnodes
[
index
].
forceStopOneTaosd
()
def
startOneNode
(
self
,
index
):
self
.
tdnodes
[
index
].
startOneTaosd
()
def
stopAllTaosd
(
self
):
def
stopAllTaosd
(
self
):
self
.
node1
.
stopTaosd
()
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
stopTaosd
()
self
.
tdnodes
[
i
].
stopTaosd
()
self
.
node3
.
stopTaosd
()
def
startAllTaosd
(
self
):
def
startAllTaosd
(
self
):
self
.
node1
.
startTaosd
()
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
startTaosd
()
self
.
tdnodes
[
i
].
startTaosd
()
self
.
node3
.
startTaosd
()
def
restartAllTaosd
(
self
):
def
restartAllTaosd
(
self
):
self
.
node1
.
restartTaosd
()
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
restartTaosd
()
self
.
tdnodes
[
i
].
restartTaosd
()
self
.
node3
.
restartTaosd
()
def
addConfigs
(
self
,
configKey
,
configValue
):
def
addConfigs
(
self
,
configKey
,
configValue
):
self
.
node1
.
configTaosd
(
configKey
,
configValue
)
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
configTaosd
(
configKey
,
configValue
)
self
.
tdnodes
[
i
].
configTaosd
(
configKey
,
configValue
)
self
.
node3
.
configTaosd
(
configKey
,
configValue
)
def
removeConfigs
(
self
,
configKey
,
configValue
):
def
removeConfigs
(
self
,
configKey
,
configValue
):
self
.
node1
.
removeTaosConfig
(
configKey
,
configValue
)
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
removeTaosConfig
(
configKey
,
configValue
)
self
.
tdnodes
[
i
].
removeTaosConfig
(
configKey
,
configValue
)
self
.
node3
.
removeTaosConfig
(
configKey
,
configValue
)
def
removeAllDataFiles
(
self
):
def
removeAllDataFiles
(
self
):
self
.
node1
.
removeData
()
for
i
in
range
(
len
(
self
.
tdnodes
)):
self
.
node2
.
removeData
()
self
.
tdnodes
[
i
].
removeData
()
self
.
node3
.
removeData
()
# kill taosd randomly every 10 mins
class
ClusterTest
:
nodes
=
Nodes
()
def
__init__
(
self
,
hostName
):
loop
=
0
self
.
host
=
hostName
while
True
:
self
.
user
=
"root"
loop
=
loop
+
1
self
.
password
=
"taosdata"
index
=
random
.
randint
(
0
,
4
)
self
.
config
=
"/etc/taos"
print
(
"loop: %d, kill taosd on node%d"
%
(
loop
,
index
))
self
.
dbName
=
"mytest"
nodes
.
stopOneNode
(
index
)
self
.
stbName
=
"meters"
time
.
sleep
(
60
)
self
.
numberOfThreads
=
20
nodes
.
startOneNode
(
index
)
self
.
numberOfTables
=
10000
time
.
sleep
(
600
)
self
.
numberOfRecords
=
1000
\ No newline at end of file
self
.
tbPrefix
=
"t"
self
.
ts
=
1538548685000
self
.
repeat
=
1
def
connectDB
(
self
):
self
.
conn
=
taos
.
connect
(
host
=
self
.
host
,
user
=
self
.
user
,
password
=
self
.
password
,
config
=
self
.
config
)
def
createSTable
(
self
,
replica
):
cursor
=
self
.
conn
.
cursor
()
tdLog
.
info
(
"drop database if exists %s"
%
self
.
dbName
)
cursor
.
execute
(
"drop database if exists %s"
%
self
.
dbName
)
tdLog
.
info
(
"create database %s replica %d"
%
(
self
.
dbName
,
replica
))
cursor
.
execute
(
"create database %s replica %d"
%
(
self
.
dbName
,
replica
))
tdLog
.
info
(
"use %s"
%
self
.
dbName
)
cursor
.
execute
(
"use %s"
%
self
.
dbName
)
tdLog
.
info
(
"drop table if exists %s"
%
self
.
stbName
)
cursor
.
execute
(
"drop table if exists %s"
%
self
.
stbName
)
tdLog
.
info
(
"create table %s(ts timestamp, current float, voltage int, phase int) tags(id int)"
%
self
.
stbName
)
cursor
.
execute
(
"create table %s(ts timestamp, current float, voltage int, phase int) tags(id int)"
%
self
.
stbName
)
cursor
.
close
()
def
insertData
(
self
,
threadID
):
print
(
"Thread %d: starting"
%
threadID
)
cursor
=
self
.
conn
.
cursor
()
tablesPerThread
=
int
(
self
.
numberOfTables
/
self
.
numberOfThreads
)
baseTableID
=
tablesPerThread
*
threadID
for
i
in
range
(
tablesPerThread
):
cursor
.
execute
(
"create table %s%d using %s tags(%d)"
%
(
self
.
tbPrefix
,
baseTableID
+
i
,
self
.
stbName
,
baseTableID
+
i
))
query
=
"insert into %s%d values"
%
(
self
.
tbPrefix
,
baseTableID
+
i
)
base
=
self
.
numberOfRecords
*
i
for
j
in
range
(
self
.
numberOfRecords
):
query
+=
"(%d, %f, %d, %d)"
%
(
self
.
ts
+
base
+
j
,
random
.
random
(),
random
.
randint
(
210
,
230
),
random
.
randint
(
0
,
10
))
cursor
.
execute
(
query
)
cursor
.
close
()
print
(
"Thread %d: finishing"
%
threadID
)
def
run
(
self
):
threads
=
[]
tdLog
.
info
(
"Inserting data"
)
for
i
in
range
(
self
.
numberOfThreads
):
thread
=
threading
.
Thread
(
target
=
self
.
insertData
,
args
=
(
i
,))
threads
.
append
(
thread
)
thread
.
start
()
for
i
in
range
(
self
.
numberOfThreads
):
threads
[
i
].
join
()
\ No newline at end of file
tests/pytest/insert/metadataUpdate.py
浏览文件 @
00d6bb39
...
@@ -54,10 +54,11 @@ class TDTestCase:
...
@@ -54,10 +54,11 @@ class TDTestCase:
p
.
terminate
()
p
.
terminate
()
tdSql
.
execute
(
"insert into tb values(%d, 1, 2)"
%
(
self
.
ts
+
1
))
tdSql
.
execute
(
"insert into tb values(%d, 1, 2)"
%
(
self
.
ts
+
1
))
tdSql
.
execute
(
"insert into tb(ts, col1, col2) values(%d, 1, 2)"
%
(
self
.
ts
+
2
))
print
(
"==============step2"
)
print
(
"==============step2"
)
tdSql
.
query
(
"select * from tb"
)
tdSql
.
query
(
"select * from tb"
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkRows
(
3
)
def
stop
(
self
):
def
stop
(
self
):
tdSql
.
close
()
tdSql
.
close
()
...
...
tests/test-all.sh
浏览文件 @
00d6bb39
...
@@ -160,9 +160,10 @@ function runPyCaseOneByOnefq {
...
@@ -160,9 +160,10 @@ function runPyCaseOneByOnefq {
totalFailed
=
0
totalFailed
=
0
totalPyFailed
=
0
totalPyFailed
=
0
totalJDBCFailed
=
0
totalJDBCFailed
=
0
totalUnitFailed
=
0
corepath
=
`
grep
-oP
'.*(?=core_)'
/proc/sys/kernel/core_pattern||grep
-oP
'.*(?=core-)'
/proc/sys/kernel/core_pattern
`
corepath
=
`
grep
-oP
'.*(?=core_)'
/proc/sys/kernel/core_pattern||grep
-oP
'.*(?=core-)'
/proc/sys/kernel/core_pattern
`
if
[
"
$2
"
!=
"jdbc"
]
&&
[
"
$2
"
!=
"python"
]
;
then
if
[
"
$2
"
!=
"jdbc"
]
&&
[
"
$2
"
!=
"python"
]
&&
[
"
$2
"
!=
"unit"
]
;
then
echo
"### run TSIM test case ###"
echo
"### run TSIM test case ###"
cd
$tests_dir
/script
cd
$tests_dir
/script
...
@@ -231,7 +232,7 @@ if [ "$2" != "jdbc" ] && [ "$2" != "python" ]; then
...
@@ -231,7 +232,7 @@ if [ "$2" != "jdbc" ] && [ "$2" != "python" ]; then
fi
fi
fi
fi
if
[
"
$2
"
!=
"sim"
]
&&
[
"
$2
"
!=
"jdbc"
]
;
then
if
[
"
$2
"
!=
"sim"
]
&&
[
"
$2
"
!=
"jdbc"
]
&&
[
"
$2
"
!=
"unit"
]
;
then
echo
"### run Python test case ###"
echo
"### run Python test case ###"
cd
$tests_dir
cd
$tests_dir
...
@@ -300,8 +301,8 @@ if [ "$2" != "sim" ] && [ "$2" != "jdbc" ] ; then
...
@@ -300,8 +301,8 @@ if [ "$2" != "sim" ] && [ "$2" != "jdbc" ] ; then
fi
fi
if
[
"
$2
"
!=
"sim"
]
&&
[
"
$2
"
!=
"python"
]
&&
[
"
$1
"
==
"full"
]
;
then
if
[
"
$2
"
!=
"sim"
]
&&
[
"
$2
"
!=
"python"
]
&&
[
"
$
2
"
!=
"unit"
]
&&
[
"
$
1
"
==
"full"
]
;
then
echo
"### run JDBC test case
###"
echo
"### run JDBC test case
s ###"
cd
$tests_dir
cd
$tests_dir
...
@@ -318,7 +319,7 @@ if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$1" == "full" ]; then
...
@@ -318,7 +319,7 @@ if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$1" == "full" ]; then
nohup
build/bin/taosd
-c
/etc/taos/
>
/dev/null 2>&1 &
nohup
build/bin/taosd
-c
/etc/taos/
>
/dev/null 2>&1 &
sleep
30
sleep
30
cd
$tests_dir
/../src/connector/jdbc
cd
$tests_dir
/../src/connector/jdbc
mvn
test
>
jdbc-out.log 2>&1
mvn
test
>
jdbc-out.log 2>&1
tail
-n
20 jdbc-out.log
tail
-n
20 jdbc-out.log
...
@@ -343,4 +344,40 @@ if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$1" == "full" ]; then
...
@@ -343,4 +344,40 @@ if [ "$2" != "sim" ] && [ "$2" != "python" ] && [ "$1" == "full" ]; then
dohavecore 1
dohavecore 1
fi
fi
exit
$((
$totalFailed
+
$totalPyFailed
+
$totalJDBCFailed
))
if
[
"
$2
"
!=
"sim"
]
&&
[
"
$2
"
!=
"python"
]
&&
[
"
$2
"
!=
"jdbc"
]
&&
[
"
$1
"
==
"full"
]
;
then
echo
"### run Unit tests ###"
stopTaosd
cd
$tests_dir
if
[[
"
$tests_dir
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
cd
../../
else
cd
../
fi
pwd
cd
debug/build/bin
nohup
./taosd
-c
/etc/taos/
>
/dev/null 2>&1 &
sleep
30
pwd
./queryTest
>
unittest-out.log 2>&1
tail
-n
20 unittest-out.log
totalUnitTests
=
`
grep
"Running"
unittest-out.log |
awk
'{print $3}'
`
totalUnitSuccess
=
`
grep
'PASSED'
unittest-out.log |
awk
'{print $4}'
`
totalUnitFailed
=
`
expr
$totalUnitTests
-
$totalUnitSuccess
`
if
[
"
$totalUnitSuccess
"
-gt
"0"
]
;
then
echo
-e
"
\n
${
GREEN
}
### Total
$totalUnitSuccess
Unit test succeed! ###
${
NC
}
"
fi
if
[
"
$totalUnitFailed
"
-ne
"0"
]
;
then
echo
-e
"
\n
${
RED
}
### Total
$totalUnitFailed
Unit test failed! ###
${
NC
}
"
fi
dohavecore 1
fi
exit
$((
$totalFailed
+
$totalPyFailed
+
$totalJDBCFailed
+
$totalUnitFailed
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录