patch 4.0
This commit is contained in:
130
unittest/storage/run_all_test.py
Executable file
130
unittest/storage/run_all_test.py
Executable file
@ -0,0 +1,130 @@
|
||||
#!/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)
|
||||
Reference in New Issue
Block a user