commit
9234a88f98
|
@ -6,135 +6,135 @@ node {
|
||||||
|
|
||||||
|
|
||||||
// execute this before anything else, including requesting any time on an agent
|
// execute this before anything else, including requesting any time on an agent
|
||||||
if (currentBuild.rawBuild.getCauses().toString().contains('BranchIndexingCause')) {
|
// if (currentBuild.rawBuild.getCauses().toString().contains('BranchIndexingCause')) {
|
||||||
print "INFO: Build skipped due to trigger being Branch Indexing"
|
// print "INFO: Build skipped due to trigger being Branch Indexing"
|
||||||
currentBuild.result = 'ABORTED' // optional, gives a better hint to the user that it's been skipped, rather than the default which shows it's successful
|
// currentBuild.result = 'ABORTED' // optional, gives a better hint to the user that it's been skipped, rather than the default which shows it's successful
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
def pre_test(){
|
// def pre_test(){
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
// catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh '''
|
// sh '''
|
||||||
sudo rmtaos
|
// sudo rmtaos
|
||||||
'''
|
// '''
|
||||||
}
|
// }
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}
|
// cd ${WKC}
|
||||||
rm -rf *
|
// rm -rf *
|
||||||
cd ${WK}
|
// cd ${WK}
|
||||||
git reset --hard
|
// git reset --hard
|
||||||
git checkout develop
|
// git checkout develop
|
||||||
git pull
|
// git pull
|
||||||
cd ${WKC}
|
// cd ${WKC}
|
||||||
rm -rf *
|
// rm -rf *
|
||||||
mv ${WORKSPACE}/* .
|
// mv ${WORKSPACE}/* .
|
||||||
cd ${WK}
|
// cd ${WK}
|
||||||
export TZ=Asia/Harbin
|
// export TZ=Asia/Harbin
|
||||||
date
|
// date
|
||||||
rm -rf ${WK}/debug
|
// rm -rf ${WK}/debug
|
||||||
mkdir debug
|
// mkdir debug
|
||||||
cd debug
|
// cd debug
|
||||||
cmake .. > /dev/null
|
// cmake .. > /dev/null
|
||||||
make > /dev/null
|
// make > /dev/null
|
||||||
make install > /dev/null
|
// make install > /dev/null
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
'''
|
// '''
|
||||||
return 1
|
// return 1
|
||||||
}
|
// }
|
||||||
pipeline {
|
// pipeline {
|
||||||
agent none
|
// agent none
|
||||||
environment{
|
// environment{
|
||||||
WK = '/var/lib/jenkins/workspace/TDinternal'
|
// WK = '/var/lib/jenkins/workspace/TDinternal'
|
||||||
WKC= '/var/lib/jenkins/workspace/TDinternal/community'
|
// WKC= '/var/lib/jenkins/workspace/TDinternal/community'
|
||||||
}
|
// }
|
||||||
|
|
||||||
stages {
|
// stages {
|
||||||
stage('Parallel test stage') {
|
// stage('Parallel test stage') {
|
||||||
parallel {
|
// parallel {
|
||||||
stage('python p1') {
|
// stage('python p1') {
|
||||||
agent{label 'p1'}
|
// agent{label 'p1'}
|
||||||
steps {
|
// steps {
|
||||||
pre_test()
|
// pre_test()
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
./test-all.sh p1
|
// ./test-all.sh p1
|
||||||
date'''
|
// date'''
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
stage('test_b1') {
|
// stage('test_b1') {
|
||||||
agent{label 'master'}
|
// agent{label 'master'}
|
||||||
steps {
|
// steps {
|
||||||
pre_test()
|
// pre_test()
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
./test-all.sh b1
|
// ./test-all.sh b1
|
||||||
date'''
|
// date'''
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
stage('test_crash_gen') {
|
// stage('test_crash_gen') {
|
||||||
agent{label "b2"}
|
// agent{label "b2"}
|
||||||
steps {
|
// steps {
|
||||||
pre_test()
|
// pre_test()
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
// catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}/tests/pytest
|
// cd ${WKC}/tests/pytest
|
||||||
./crash_gen.sh -a -p -t 4 -s 2000
|
// ./crash_gen.sh -a -p -t 4 -s 2000
|
||||||
'''
|
// '''
|
||||||
}
|
// }
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
// catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}/tests/pytest
|
// cd ${WKC}/tests/pytest
|
||||||
./handle_crash_gen_val_log.sh
|
// ./handle_crash_gen_val_log.sh
|
||||||
'''
|
// '''
|
||||||
}
|
// }
|
||||||
sh '''
|
// sh '''
|
||||||
date
|
// date
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
./test-all.sh b2
|
// ./test-all.sh b2
|
||||||
date
|
// date
|
||||||
'''
|
// '''
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
stage('test_valgrind') {
|
// stage('test_valgrind') {
|
||||||
agent{label "b3"}
|
// agent{label "b3"}
|
||||||
|
|
||||||
steps {
|
// steps {
|
||||||
pre_test()
|
// pre_test()
|
||||||
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
// catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
|
||||||
sh '''
|
// sh '''
|
||||||
cd ${WKC}/tests/pytest
|
// cd ${WKC}/tests/pytest
|
||||||
./valgrind-test.sh 2>&1 > mem-error-out.log
|
// ./valgrind-test.sh 2>&1 > mem-error-out.log
|
||||||
./handle_val_log.sh
|
// ./handle_val_log.sh
|
||||||
'''
|
// '''
|
||||||
}
|
// }
|
||||||
sh '''
|
// sh '''
|
||||||
date
|
// date
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
./test-all.sh b3
|
// ./test-all.sh b3
|
||||||
date'''
|
// date'''
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
stage('python p2'){
|
// stage('python p2'){
|
||||||
agent{label "p2"}
|
// agent{label "p2"}
|
||||||
steps{
|
// steps{
|
||||||
pre_test()
|
// pre_test()
|
||||||
sh '''
|
// sh '''
|
||||||
date
|
// date
|
||||||
cd ${WKC}/tests
|
// cd ${WKC}/tests
|
||||||
./test-all.sh p2
|
// ./test-all.sh p2
|
||||||
date
|
// date
|
||||||
'''
|
// '''
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
|
@ -189,51 +189,51 @@ class ConcurrentInquiry:
|
||||||
return sql
|
return sql
|
||||||
|
|
||||||
def gen_query_join(self): #生成join查询语句
|
def gen_query_join(self): #生成join查询语句
|
||||||
tbi=random.randint(0,len(self.subtb_list)+len(self.stb_list)) #随机决定查询哪张表
|
tbname = []
|
||||||
tbname=''
|
col_list = []
|
||||||
col_list=[]
|
tag_list = []
|
||||||
tag_list=[]
|
col_intersection = []
|
||||||
is_stb=0
|
tag_intersection = []
|
||||||
if tbi>len(self.stb_list) :
|
|
||||||
tbi=tbi-len(self.stb_list)
|
|
||||||
tbname=self.subtb_list[tbi-1]
|
if bool(random.getrandbits(1)):
|
||||||
col_list=self.subtb_stru_list[tbi-1]
|
tbname = random.sample(self.subtb_list,2)
|
||||||
tag_list=self.subtb_tag_list[tbi-1]
|
for i in tbname:
|
||||||
|
col_list.append(self.subtb_stru_list[self.subtb_list.index(i)])
|
||||||
|
tag_list.append(self.subtb_stru_list[self.subtb_list.index(i)])
|
||||||
|
col_intersection = list(set(col_list[0]).intersection(set(col_list[1])))
|
||||||
|
tag_intersection = list(set(tag_list[0]).intersection(set(tag_list[1])))
|
||||||
else:
|
else:
|
||||||
tbname=self.stb_list[tbi-1]
|
tbname = random.sample(self.stb_list,2)
|
||||||
col_list=self.stb_stru_list[tbi-1]
|
for i in tbname:
|
||||||
tag_list=self.stb_tag_list[tbi-1]
|
col_list.append(self.stb_stru_list[self.stb_list.index(i)])
|
||||||
is_stb=1
|
tag_list.append(self.stb_stru_list[self.stb_list.index(i)])
|
||||||
tlist=col_list+tag_list+['abc'] #增加不存在的域'abc',是否会引起新bug
|
col_intersection = list(set(col_list[0]).intersection(set(col_list[1])))
|
||||||
|
tag_intersection = list(set(tag_list[0]).intersection(set(tag_list[1])))
|
||||||
|
|
||||||
|
|
||||||
con_rand=random.randint(0,len(condition_list))
|
con_rand=random.randint(0,len(condition_list))
|
||||||
func_rand=random.randint(0,len(func_list))
|
|
||||||
col_rand=random.randint(0,len(col_list))
|
col_rand=random.randint(0,len(col_list))
|
||||||
tag_rand=random.randint(0,len(tag_list))
|
tag_rand=random.randint(0,len(tag_list))
|
||||||
t_rand=random.randint(0,len(tlist))
|
|
||||||
sql='select ' #select
|
sql='select ' #select
|
||||||
random.shuffle(col_list)
|
|
||||||
random.shuffle(func_list)
|
sel_col_tag=[]
|
||||||
sel_col_list=[]
|
|
||||||
col_rand=random.randint(0,len(col_list))
|
col_rand=random.randint(0,len(col_list))
|
||||||
for i,j in zip(col_list[0:col_rand],func_list): #决定每个被查询col的函数
|
if bool(random.getrandbits(1)):
|
||||||
alias = 'as '+ str(i)
|
sql += '*'
|
||||||
pick_func = ''
|
else:
|
||||||
if j == 'leastsquares':
|
sel_col_tag.append('t1.' + str(random.choice(col_list[0] + tag_list[0])))
|
||||||
pick_func=j+'('+i+',1,1)'
|
sel_col_tag.append('t2.' + str(random.choice(col_list[1] + tag_list[1])))
|
||||||
elif j == 'top' or j == 'bottom' or j == 'percentile' or j == 'apercentile':
|
sql += ','.join(sel_col_tag)
|
||||||
pick_func=j+'('+i+',1)'
|
|
||||||
else:
|
sql = sql + 'from '+ ','.join(tbname) + ' ' #select col & func
|
||||||
pick_func=j+'('+i+')'
|
|
||||||
if bool(random.getrandbits(1)):
|
|
||||||
pick_func+=alias
|
|
||||||
sel_col_list.append(pick_func)
|
|
||||||
|
|
||||||
sql=sql+','.join(sel_col_list)+' from '+random.choice(self.stb_list+self.subtb_list)+' ' #select col & func
|
|
||||||
con_func=[self.con_where,self.con_interval,self.con_limit,self.con_group,self.con_order,self.con_fill]
|
con_func=[self.con_where,self.con_interval,self.con_limit,self.con_group,self.con_order,self.con_fill]
|
||||||
sel_con=random.sample(con_func,random.randint(0,len(con_func)))
|
sel_con=random.sample(con_func,random.randint(0,len(con_func)))
|
||||||
sel_con_list=[]
|
sel_con_list=[]
|
||||||
for i in sel_con:
|
|
||||||
sel_con_list.append(i(tlist,col_list,tag_list)) #获取对应的条件函数
|
# for i in sel_con:
|
||||||
|
# sel_con_list.append(i(tlist,col_list,tag_list)) #获取对应的条件函数
|
||||||
sql+=' '.join(sel_con_list) # condition
|
sql+=' '.join(sel_con_list) # condition
|
||||||
print(sql)
|
print(sql)
|
||||||
return sql
|
return sql
|
||||||
|
|
Loading…
Reference in New Issue