oceanbase/unittest/storage/run_all_test.py
wangzelin.wzl 93a1074b0c patch 4.0
2022-10-24 17:57:12 +08:00

131 lines
4.5 KiB
Python
Executable File

#!/usr/bin/python
import os
import sys
import time
test_list = (
'memtable/',
'replayengine/',
'transaction/',
'./',
'../clog/',
)
quick_list = {
'memtable/' : (
# 'test_memtable_compact_writer',
# 'test_memtable_mutator',
'test_rowkey_codec',
),
'transaction/' : (
# 'test_ob_trans_ctx_mgr',
'test_ob_mask_set',
'test_ob_clog_adapter',
'test_ob_location_adapter',
'test_ob_trans_msg',
'test_ob_trans_log',
'test_ob_trans_define',
'test_ob_trans_submit_log_cb',
'test_ob_trans_rpc',
'test_ob_trans_version_mgr',
),
'./' : (
'test_row_fuse',
'test_single_row_merge',
'test_multiple_get_merge',
'test_multiple_scan_merge',
# 'test_base_storage',
'test_save_storage_info',
'test_range_iterator',
),
'../clog/' : (
# 'test_fetch_log_engine',
'test_log_allocator',
'test_log_callback_engine',
'test_log_checksum_V2',
'test_log_common',
'test_log_define',
'test_log_ext_ring_buffer',
'test_log_index',
# 'test_log_reconfirm',
'test_log_replay_engine_wrapper',
'test_log_state_driver_runnable',
'test_log_task',
# 'test_new_log_state_mgr',
'test_ob_index_entry',
# 'test_ob_index_iterator',
'test_ob_log_block',
'test_ob_log_cache',
# 'test_ob_log_direct_reader',
'test_ob_log_entry',
'test_ob_log_entry_header',
# 'test_ob_log_file_pool',
'test_ob_log_file_trailer',
# 'test_ob_log_iterator',
# 'test_ob_raw_entry_iterator',
# 'test_spmg_fixed_cache',
),
}
log_dir = os.path.dirname(os.getcwd())
log_file = "%s/run_all_test.log" % log_dir
def retrieve_ut_executables(test_list):
'''aa'''
exec_list = []
for f in test_list:
found = False
for l in open(f + 'Makefile.am'):
if found:
s = l.strip()
b_flag = False
if s[-1] == '\\':
s = s[0:-1]
else:
b_flag = True
exec_list += [(f, name) for name in s.split()]
if b_flag:
break
elif l.startswith('bin_PROGRAMS'):
s = l.strip()
s = s[s.index('=')+1:].strip()
if s[-1] == '\\':
s = s[0:-1]
found = True
exec_list += [(f, name) for name in s.split()]
return exec_list
if __name__ == '__main__':
exit_code = 0
quick = False
if len(sys.argv) == 2 and sys.argv[1] == 'quick':
quick = True
pos = 45
for ut in retrieve_ut_executables(test_list):
fn = ut[0] + ut[1]
print fn,
i = 0
while i < pos - len(fn):
i += 1
print '',
if quick and ((not quick_list.has_key(ut[0])) or (ut[1] not in quick_list[ut[0]])):
et = 0
print "\033[33mSKIPPED\033[0m [%fs]" % (et)
else:
olddir = os.getcwd()
os.chdir(ut[0])
st = time.time()
err = os.system("./" + ut[1] + " >> %s 2>&1" % log_file)
et = time.time() - st
os.chdir(olddir)
if err != 0:
print "\033[31mFAILED \033[0m [%fs]" % (et)
exit_code = 1
else:
print "\033[32mSUCCESS\033[0m [%fs]" % (et)
time.sleep(0.05)
sys.exit(exit_code)