131 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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)
 | 
