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)
 |